我已經更新了腳本,以提供更好的示例。對於$ header我有一個匿名函數現在返回$(「#header」)。雖然這個方法可行,但我確信它每次使用時都會調用$ header,所以它的效率相當於整個代碼中只使用$(「#header」)。Javascript Object Literals和jQuery
我真正想要的是將$(「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>
如何在dom準備好後定義對象字面值? – mindwire22 2010-09-02 21:09:44
當我在firefox中console.log(lib.page。$ header)時,我得到一個返回的jQuery對象,選擇器是#header。 任何想法? – mindwire22 2010-09-02 21:23:00
jQuery對象的存在並不能保證它被DOM元素填充。你需要檢查那個長度。此外,在