是$(function(){})与$(document).ready(function(){})完全等价

时间:2012-09-26 16:09:56

标签: javascript jquery

  

可能重复:
  What is the difference between these jQuery ready functions?
  Are $(function(){}); and $(“document”).ready(function(){}); the same?
  start javascript code with $(function, etc

今天,在审核一些javascript代码时,我发现代码的某些部分用$(function() { })部分编写,而其他部分代码在$(document).ready(function() { })部分内部。所以我的第一反应是:好的,差异是什么?

经过一番谷歌搜索后,我在jQuery教程Getting Started with jQuery中找到了下一个语句:

  

以下是$(document).ready(回调)表示法的快捷方式:

$(function() {
    // code to execute when the DOM is ready
});

现在,问题是:$(function() { })是否与$(document).ready(function() { })完全等效?

(还有一个"不太全球化的"间接问题:我可以安全地将所有代码放在两个部分中的一部分吗?)

3 个答案:

答案 0 :(得分:5)

是的,$(function() { })$(document).ready(function() { })的缩写。

  

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

$(document).ready(handler)
$().ready(handler) (this is not recommended)
$(handler)

来自.ready() reference

答案 1 :(得分:1)

(function() { })$(document).ready(function() { })可以互换使用,我们可以选择我们喜欢的那个。我认为$(document).ready(function() { })模式在阅读代码时是可读和可理解的。

答案 2 :(得分:-1)

是的,它们完全相同,是的,将它们放在同一个块上是安全的(假设它们之间没有任何关系)。