当我仔细阅读jQuery驱动的JavaScript源文件时,我看到如下定义的函数:
$(document).ready(function() {
...
});
$(function {
...
});
我认为我理解第一个:我假设它的功能在整个页面下载后触发,是吗?如果没有,请纠正我!
真正令我困惑的是第二个。这是一个匿名函数吗?如何/在哪里被调用?什么时候被调用(页面加载)?
我想我已经习惯看到用旧方式编写的JavaScript函数:
function myFunction() {
...
}
然后我只要在需要的时候拨打myFunction
。这种“旧”方式与jQuery的构造相比如何?感谢您帮助我理解任何这种混乱!
答案 0 :(得分:6)
第二个函数只是第一个方法的简写方法。两者都为文档的“就绪”事件注册回调。
以下所有三种语法都是等效的:
(文档)$。就绪(处理程序)
$()。ready(处理程序)(不建议这样做)
$(处理程序)
修改强>
当DOM可以安全更新时,ready
事件实际上会触发。事件将在图像等外部资源完全加载之前引发,但大多数浏览器似乎等待外部CSS在调用之前完成加载,因为脚本通常依赖于布局计算完成。简写方法jQuery方法非常常见,因为它为脚本提供了一种易于记忆和直接的方法,可以在脚本“准备好”时更改DOM。