这个 jQuery init 是什么意思?

Ant*_*les 1 jquery

在一些教程中,我发现 jQuery 声明如下:

(function($){
    //Init some code

})(jQuery);
Run Code Online (Sandbox Code Playgroud)

这在 jQuery 中是如何工作的?

我通常这样初始化 jQuery main.js:

$(document).ready(function(){
 //Init some code
});
Run Code Online (Sandbox Code Playgroud)

Dee*_*psy 5

两个代码有很大不同。

$(document).ready(function(){
  //Init some code
});
Run Code Online (Sandbox Code Playgroud)

每当文档完成加载时就会执行此操作。它可以放置在任何地方。在这里阅读更多内容。尽管:

(function($){
//Init some code

})(jQuery);
Run Code Online (Sandbox Code Playgroud)

是自执行函数。当浏览器访问它时它将被执行。如果你把它放在代码的开头,它将立即执行,所以如果你的元素位于这个自执行函数之后,jquery选择器可能不起作用,因为那时元素根本不存在。基本上,这段代码是一个函数,它将在声明的同时执行,因此 jQuery 将作为第一个参数 ($) 传递。

太;博士; document.ready 的位置并不重要 - 它将在文档加载完成时执行,而自执行函数的位置应该仅在 dom 元素声明之后。