- 1 つのアイテム < /li>
- 2 つのアイテム
- 3 つのアイテム
;
<script> <br>YAHOO.myProject.myModule = function () { <br>// のプライベート短縮参照YUI ユーティリティ: <br>var yue = YAHOO.util.Event, <br>yud = YAHOO.util.Dom; <br>//プライベート メソッド <br>var getListItems = function () { <br>//ここでは、「yud」YAHOO.util.Dom の省略形など、他のプライベート変数が使用されます。 <br>var elList = yud.get("myList"); <br>var aListItems = yud.getElementsByClassName( <br>"draggable) ", //CSS クラスの項目のみを取得します。 "draggable"<br>"li", //リスト項目のみを返します<br>elList //検索を変更された要素の子要素に限定します<br>); <br> return aListItems; <br>}; <br>//返されたオブジェクトは YAHOO.myProject.myModule: <br>return { <br>aDragObjects: [], //外部からアクセス可能なストレージ DD オブジェクト <br>init: function () { <br>//DOM が完全にロードされるまで、リスト項目はドラッグできません: <br>yue.onDOMReady(this.makeLIsDraggable, this, true); <br>}, <br>makeLIsDraggable: function () { <br>var aListItems = getListItems(); //ドラッグできる要素<br> (var i=0, j=aListItems.length; i<j; i ) { <br>this.aDragObjects .push(new YAHOO.util.DD(aListItems[i])); <br>} <br>} <br>}(); 上記のコードは実行されました。 init メソッドにすぐにアクセスできます: <br>YAHOO.myProject.myModule.init(); <br></script>
これは、意図的に詳細に示した例です。この方法でやれば、間違いなくよりコンパクトにできるでしょう。このパターンは、プロジェクトがより複雑になり、API が増加するにつれて、適切に拡張できます。このようにして、グローバル名前空間を回避し、外部からアクセス可能な API メソッドを提供し、保護されたまたは「プライベート」データとメソッドをサポートします。