$(function()
{
$(".some").click(function()
{
...
});
});
和
$(".some").click(function()
{
...
});
从这里我知道$(function()
是$(document).ready(function()
的简写。但是我们为什么要等文件准备好呢?无论如何,当some
被点击时,函数不会被调用吗?
不同之处在于#1在运行JavaScript之前等待DOM完全加载。第二个代码在接收到JavaScript时运行它,这意味着它在完成加载之前查找.class
元素。
在为元素添加事件侦听器之前,您需要准备好文档,即文档的所有元素都可用。
原因是:考虑一个按钮,您需要一个事件侦听器(例如侦听click
事件)。
当脚本运行但按钮尚未出现时,尝试附加侦听器将失败。因此,一旦实际单击按钮,就不能调用相关的函数。
这样回答你的问题了吗?
使用$(function())
仅仅是因为需要完全加载DOM。
例如,你有一个按钮,你想在点击时添加一些动作。单击按钮,但没有发生任何事情,因为在加载DOM之前已经处理了按钮。
如果不检查DOM是否已完全加载,可能会发生一些意外行为。
请不要混淆onload()
和ready()
,因为on load在页面加载后执行,而ready()仅在DOCUMENT完全准备好时执行。
$(function(){…})在加载DOM时触发该函数,类似于window。jquery库的一部分。
也可以使用$(namefunction);
它的存在是为了确保事件有一个可以监听的元素