銳3快速提示:添加您自己的真棒
2010年9月29日在下午12點22分由Eric米拉利亞|在發展 | 3評論盧克( @ ls_n )張貼了這個片段在回答記者提問有一天,我認為這是值得分享這裡作為一個快速提示。
與大多數選擇為基礎的成語,很多銳3的表現力量來自你可以做什麼,一旦你有一個或多個引用HTMLElements -銳3,這意味著有一個節點的引用,你通常會得到通過Y.one( selector string )或Y.all( selector string ) 。 因此, Y.one("#foo"). doSomethingInteresting是一種常見的模式。
它易於擴展銳 3的表現,加入你自己的魔法到節點(和/或的NodeList)。 這裡有一種方法讓你的擴展模塊化和重用。
首先,創建一個新的自定義模塊(我們稱之為node++ ):
YUI.add('節點 + +',函數(Y){ / /定義一個函數,將在上下文中運行的一 / /節點的實例: 功能doSomethingAwesome(){ Y.log(“做點這裡真棒。”); } / /使用addMethod添加doAwesomeThing到節點原型: Y.Node.addMethod(“doAwesomeThing”,doSomethingAwesome); / /將此功能擴展到NodeLists: Y.NodeList.importMethod(Y.Node.prototype,“doAwesomeThing”); },'0 .0.1',{要求:['節點']});
與該網頁上的定義, node++可以use D的任何實例。 在您的實現代碼,你會做:
銳()。使用('節點 + +',函數(Y){ / /使用一個單一的節點: Y.one('#富')。doAwesomeThing(); / /使用一個節點列表: Y.all(的'p')。doAwesomeThing(); });
請注意,只有銳實例(s)到你綁定你的node++模塊將有機會獲得doAwesomeThing 。 這種設計的一個特徵,你會喜歡你構建複雜的應用程序實現邏輯是,你不需要改變,如果依賴目錄node++演變-那你將得到處理好的自動在use()時間,而且依賴申報代碼,以保持與它涉及。



哪裡有光澤榜樣,我推? (Durrrr)
評論由克里斯托弗艾夫斯 - 2010年9月29日#
一個非常有用的方法,只是要小心(現在)如果您使用的是'這個'內部參考你的方法,見http://yuilibrary.com/projects/yui3/ticket/2529327
評論由約翰佩洛昆- 2010年9月29日#
我實現了銳突出以下版本中所描述的方法後:
http://gist.github.com/613015
評論由阿爾貝托桑蒂尼 - 2010年10月6日#