JavaScript / jQuery和“顶级”功能

时间:2012-09-18 16:47:53

标签: javascript jquery

当我仔细阅读jQuery驱动的JavaScript源文件时,我看到如下定义的函数:

$(document).ready(function() {
    ...
});

$(function {
    ...
});

认为我理解第一个:我假设它的功能在整个页面下载后触发,是吗?如果没有,请纠正我!

真正令我困惑的是第二个。这是一个匿名函数吗?如何/在哪里被调用?什么时候被调用(页面加载)?

我想我已经习惯看到用方式编写的JavaScript函数:

function myFunction() {
    ...
}

然后我只要在需要的时候拨打myFunction。这种“旧”方式与jQuery的构造相比如何?感谢您帮助我理解任何这种混乱!

1 个答案:

答案 0 :(得分:6)

第二个函数只是第一个方法的简写方法。两者都为文档的“就绪”事件注册回调。

http://api.jquery.com/ready/

  

以下所有三种语法都是等效的:

     

(文档)$。就绪(处理程序)
  $()。ready(处理程序)(不建议这样做)
  $(处理程序)

修改
当DOM可以安全更新时,ready事件实际上会触发。事件将在图像等外部资源完全加载之前引发,但大多数浏览器似乎等待外部CSS在调用之前完成加载,因为脚本通常依赖于布局计算完成。简写方法jQuery方法非常常见,因为它为脚本提供了一种易于记忆和直接的方法,可以在脚本“准备好”时更改DOM。