より良い例を示すために、ここでスクリプトを更新しました。$ headerの場合、 $( "#header")を返す無名関数があります。これは機能しますが、使用するたびに$ headerを呼び出すため、効率的ではないと確信しています。したがって、コード全体で$( "#header")を使用するのと同じです。
私が本当に欲しいのは、$( "header")を変数に格納することです。$ header2(下記)でこれを行おうとすると失敗します。#headerは青ではなく赤です。
firebugを使用してlib.page。$header2.selectorを出力すると、正しく#headerが表示されます。ご覧のとおり、lib.page.initを呼び出すスクリプトはDOMの下部にあります。
何か案は?
<script type="text/javascript">
var lib = {
page : {
$header : function() { return $("#header")},
$header2 : $("#header"),
init: function() {
lib.page.$header().css("background","red");
lib.page.$header2.css("background","blue");
console.log(lib.page.$header2.selector);
}
}
}
</script>
</head>
<body>
<div id="wrapper">
<div id="header">
<em>Example!</em>
</div>
</div>
<script type="text/javascript">
$(function() { lib.page.init(); });
</script>
</body>