jQuery新手:jQuery(function($){...})是什么意思?

Lee*_*eem 19 jquery jquery-ui jquery-selectors

我知道在jQuery中,$(callback)它与jQuery(callback)具有相同效果的相同$(document).ready().

怎么样

jQuery(function($) {

 });
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释一下这种功能是什么意思吗?

它有什么作用?

这个和$(callback)?? 之间有什么区别?

这个和$(function())?? 之间有什么区别?

Geo*_*kov 19

jQuery(function($) {

});
Run Code Online (Sandbox Code Playgroud)

是这三者中最安全的版本.它产生$局部变量,从而优雅地避免与可能使用$符号的任何其他变量冲突.

我认为最近也添加了它,不记得以前看过了.

这些函数都做同样的事情 - 在DOM准备好时执行一些代码.$(document).ready(function(){})是原始的,它匹配底层的JavaScript API.

接受函数作为参数的"$"和"jQuery"被创建为快捷方式,以避免重复这种常见的构造.接受一个接受$作为其第一个参数的函数是另一种语法糖 - 现在你可以方便地完成闭包而无需自己动手.


Thi*_*ter 17

  • $(function()) 是语法错误.
  • $() 创建一个空的jQuery对象.
  • $(document).ready(function() { ... }) 在DOM准备好时执行给定的函数
  • $(function() { ... }) 是同一件事的捷径
  • jQuery(function($) { ... })也是如此,但它也$可以在函数内部使用,无论它设置在外面.


Dav*_*ett 5

当您调用主要的 jQuery 工厂函数(作为jQuery(<something>)或常用快捷方式$(<something>))时,它会根据<something>.

如果您传递一个字符串,因为<something>它假定这是一个选择器规范,并将返回与该选择器匹配的元素的 jQuery 列表。

如果您传递一个 jQuery 对象(代表一个元素列表,即从前一次调用 jQuery 返回的对象),它只会返回该对象(本质上这是一个非操作)。

如果你向它传递一个 DOM 元素,它将返回一个只包含该元素的 jQuery 列表(因此你可以将 jQuery 方法应用于该元素)。这就是正在发生的事情$(document).ready()- 您将 DOM 元素“文档”传递给工厂函数,它返回一个表示该元素的 jQuery 对象,然后您使用该对象的 ready() 方法将事件处理函数添加到所有列表中的 DOM 元素(document在本例中仅为 , )。

如果你向它传递一个函数,这只是“在一切准备就绪时运行它”的简写,所以$(function() { ... });相当于$(document).ready(function() { ... });