ラーニングセンターのコード編成セクションで公開されたモジュールパターンに関する最後のコードフラグメント(以下に報告)を考慮して、例のモジュールのいくつかの側面を理解しようとしています。
- 変数宣言(
$items
、$container
...)はで区切られ、;
関数宣言(createContainer
、、、、....)はで区切られます。なんで?ブラケットの問題はありますか?buildUrl
showItem
,
- 最初の3つの変数(、、および)の名前がで
$items
始まる$container
の$currentItem
は$
なぜですか?これは、DOMフラグメント変数を識別するために使用される命名規則(javascript
文字を許可する$
ため)を意味しますか、それとも他の理由がありますか? - 他の関数(、、 ...)が持っていないのに、なぜ関数はを使用して宣言され
createContainer
ているのですか?var
buildUrl
showItem
var
// jQuery機能のモジュールパターンを使用$(document).ready(function(){
var feature = (function() {
var $items = $("#myFeature li");
var $container = $("<div class='container'></div>");
var $currentItem = null;
var urlBase = "/foo.php?item=";
var createContainer = function() {
var $i = $( this );
var $c = $container.clone().appendTo( $i );
$i.data( "container", $c );
},
buildUrl = function() {
return urlBase + $currentItem.attr("id");
},
showItem = function() {
var $currentItem = $( this );
getContent( showContent );
},
showItemByIndex = function( idx ) {
$.proxy( showItem, $items.get( idx ) );
},
getContent = function( callback ) {
$currentItem.data("container").load( buildUrl(), callback );
},
showContent = function() {
$currentItem.data("container").show();
hideContent();
},
hideContent = function() {
$currentItem.siblings().each(function() {
$( this ).data("container").hide();
});
};
$items.each( createContainer ).click( showItem );
return {
showItemByIndex: showItemByIndex
};
})();
feature.showItemByIndex( 0 );
});