$(document).ready()
之前您不会开始查询 DOM。 $(document).ready()
之外声明的(并查询元素)。 $(document).ready()
中会更好吗? Widget.init()
查询元素? 选项 1
Widget = {
ele : $('#ele'),
init : function(){ ... }
};
$(document).ready(function(){
Widget.init();
});
选项 2
Widget = (function(){
var privateEle = $('#privateEle');
return {
publicEle: $('#publicEle'),
init: function(){ ... }
};
}());
$(document).ready(function(){
Widget.init();
});
最佳答案
我会怎么做:
var Widget = (function(){
var ele;
function init(_ele){
ele = _ele;
};
return {
init: init
};
})();
$(function(){
Widget.init( $('#foo') );
});
如果您的脚本在 jquery 之前加载,您将不会看到错误“未定义不是函数”。但是,如果您在 domReady 之前执行查询,您可能会得到意想不到的结果,ele = []
编辑:btw .. 将您的
<script>
标签放在 </body>
之前,不在 <head></head>
内关于javascript - jQuery + 模块模式 : When to declare/query elements?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15667329/