一些理论
$ 是函数的名称,就像您为函数指定的任何其他名称一样。任何人都可以在 JavaScript 中创建一个函数并将其命名为$,如下所示:
$ = function() {
alert('I am in the $ function');
}
JQuery 是一个非常著名的 JavaScript 库,他们决定将整个框架放在一个名为 jQuery 的函数中。为了让人们更容易使用该框架并减少每次想要调用该函数时输入整个单词jQuery,他们还为其创建了一个别名。该别名是$。因此$ 是函数的名称。在 jQuery 源代码中,您可以自己查看:
window.jQuery = window.$ = jQuery;
回答您的问题
那么 $(function() { }); 是什么?
现在您知道$ 是函数的名称,如果您使用的是jQuery 库,那么您将调用名为$ 的函数并将参数function() {} 传递给它。 jQuery 库将在适当的时候调用该函数。什么时候是合适的时间?根据 jQuery 文档,合适的时间是页面的所有 DOM 元素都准备好使用时。
另一种方法是这样的:
$(document).ready(function() { });
如您所见,这更冗长,所以人们更喜欢$(function() { })
因此,正如您所注意到的,无法调用某些函数的原因是因为这些函数还不存在。换句话说,DOM 还没有加载。但是如果你把它们放在作为参数传递给$ 的函数中,那么DOM 就会被加载。至此,该函数已经创建并可以使用了。
另一种解释$(function() { })的方式是这样的:
嘿,$ 或 jQuery,你能在 DOM 加载后调用我作为参数传递的这个函数吗?