当我们调用$(document).ready()时会发生什么

时间:2013-08-20 17:34:16

标签: jquery

我有一个关于$(document).ready()的问题; jquery中的函数。 它有什么作用。 这些代码之间有什么区别;

1

$(document).ready(function(){
alert("hello");
});

和这个

2

$(document).ready((function(){
alert("hello");
})();
);

第一个代码定义了匿名函数,但它在哪里调用函数。 至少,第二个函数是调用匿名函数。 请向我解释这个问题。 提前完成。

4 个答案:

答案 0 :(得分:3)

第一个案例的说明
第一个是匿名函数,将在DOM等准备就绪时调用。它的工作方式与您期望的一样 如果您不知道它的作用,那么我将在此简要解释一下:

它的作用是给出ready函数,一个函数作为参数,它告诉ready方法,在DOM(意思是页面)加载并准备就绪时调用该方法。

var myReadyFunction = function(){ // Define the method to be called when 
        alert("hello");           // the DOMis ready
    };
$(document).ready(myReadyFunction); // Tell the ready function, to execute 
                                    //this function when the DOM is ready

第二种情况的解释
第二个,必须是开发人员的错误,它是一个“直接函数”,这意味着它将在解析器看到它时立即执行。 功能:

(function(){
    alert("hello");
})();

- 将立即警告字符串hello,该方法将返回undefined。留下插入就绪方法:

意思是,所有这一切都是大喊“你好”,然后变成这一行。

$(document).ready(undefined);

答案 1 :(得分:0)

没有区别。当您的文档准备好加载时(事件被触发然后被处理),jQuery会自动调用$(document).ready()。它执行您传递到就绪调用的匿名函数。您在第二个示例中唯一做的就是再次传递并执行它。

答案 2 :(得分:0)

$(document).ready()将回调函数绑定到事件。一旦document对象的ready事件触发,将执行回调函数。您传递给ready的参数是您希望用作该事件绑定的回调函数。

答案 3 :(得分:0)

在文档就绪时调用第一个函数。 $(document).ready,还有一个文档加载函数。文档准备就绪时调用ready函数(css + js)。加载所有内容时都会调用加载函数,包括图像。

你指出的第二个功能从未以这种方式使用。它是匿名函数和文档准备的组合。在您的函数中,直接调用匿名函数,并将结果传递给文档就绪函数。如果您以这种方式使用它,您应该像这样使用它:

$(document).ready((function(){
    alert("hello");
}) // No open / close brackets and no ;
);

更多信息:

  1. jQuery load
  2. jQuery ready