在一些教程中,我发现了这样的jQuery声明:
(function($){
//Init some code
})(jQuery);
这在jQuery中是如何工作的?
我通常会像这样初始化jQuery main.js:
$(document).ready(function(){
//Init some code
});
答案 0 :(得分:4)
两个代码都非常不同。
$(document).ready(function(){
//Init some code
});
只要文档完成加载,就会执行此操作。它可以放在任何地方。阅读更多here。 虽然:
(function($){
//Init some code
})(jQuery);
是自动执行功能。它将在浏览器到来时执行。如果你把它放在你的代码的开头它会执行immentaly,所以如果你的元素在这个自执行函数之后,jquery选择器可能不起作用,因为那时元素根本不存在。基本上这个代码是一个将在声明的同时执行的函数,因此jQuery将作为第一个参数($)传递。
Tl; dr; document.ready的位置并不重要 - 它将在完成文档加载时执行,而自执行功能的位置应该只在dom之后元素宣言。