窗口和文档之间的加载/就绪事件的差异

时间:2011-03-17 09:28:28

标签: javascript jquery

$(window).ready(function(){})$(document).ready(function(){})?

之间是否存在差异?

如果是这样,它是什么?

同样,$(window).load(function(){});$(document).load(function(){});之间有什么区别?

2 个答案:

答案 0 :(得分:5)

文档就绪事件在加载HTML文档并且DOM准备就绪时已经执行,即使所有图形尚未加载。
窗口加载事件稍后在完整加载完整页面时执行,包括所有帧,对象和图像。因此,涉及图像或其他页面内容的函数应放在窗口或内容标记本身的加载事件中。

参考link1 link2

答案 1 :(得分:5)

在研究这个和其他“准备好”的问题时,我想我已经找到了this question.的差异

这是jQuery中的ready函数处理程序。

ready: function( fn ) {
    // Attach the listeners
    jQuery.bindReady();
    // Add the callback
    readyList.add( fn );
        return this;
},

好像你可以在这个函数中添加任何元素(甚至是完整的乱码),它的回调将被添加到readyList中。当文档准备就绪时,它似乎会触发readyList中的所有回调,无论它们是否属于文档的一部分。

请参阅此小提琴以获取示例:http://jsfiddle.net/w5k5t/2/

我还没有完全测试这些预调用的订单,但是对代码的简要检查使我相信它们将按照添加回调的顺序同步执行。

因此,$(document).ready和$(window).ready是同义词,就像$('aoeuaoeuaoeu')一样.ready是同义词,每个都可能按照声明的顺序触发。