【发布时间】:2014-02-15 12:57:02
【问题描述】:
这些函数$(document).ready 和$(window).load 之间有什么区别,例如,如果我想在所有页面完全加载时用于运行代码?因为这些功能是用纯 JavaScript 实现的?谢谢!
【问题讨论】:
标签: javascript jquery
这些函数$(document).ready 和$(window).load 之间有什么区别,例如,如果我想在所有页面完全加载时用于运行代码?因为这些功能是用纯 JavaScript 实现的?谢谢!
【问题讨论】:
标签: javascript jquery
window.onload = function() {
alert( "welcome" );
};
很遗憾,在所有图片(包括横幅广告)下载完毕后,代码才会运行。为了在文档准备好被操作时立即运行代码,jQuery 有一个称为就绪事件的语句:
$( document ).ready(function() {
// Your code here.
});
来自http://learn.jquery.com/about-jquery/how-jquery-works/
另外,$(document).ready(function(){}); 它通过回调调用函数。您可以定义多个$(document).ready。它会全部运行。
window.onload = function(){} 。
"assign" => 当你定义很多window.onload = ... 时,它只运行最后一个函数。
【讨论】:
$(window).load() 和 window.onload = ... 不是一回事,而是做同样的事情。您可以拥有很多想要的$(window).load() 事件,但不推荐使用(与 DOM 就绪方法相同)。与window.addEventListener('load', function(){}) 相同。此外,代码仅在“所有图像都完成”时运行也不是不幸。
$(document).ready() 会在 DOM 准备好后立即触发,您可以将 DOM 元素弄乱。
$(window).load() 在页面内容(包括图像)加载完成时触发。
【讨论】:
document.ready 将在 HTML 文档加载属性之后立即执行,并且 DOM 准备就绪。
document.ready(一个 jQuery 事件)会在所有元素就位时触发,并且可以在 JS 代码中引用它们,但不一定加载内容。
window.load 但是会等待页面完全加载,这包括内框、图像等。
window.load 是一种内置的 JavaScript 方法,已知它在旧浏览器(IE6、IE8、旧 FF 和 Opera 版本)中存在一些问题,但通常适用于所有浏览器。
window.load 可以像这样在 body 的 onload 事件中使用(但我强烈建议您避免在 HTML 中混合这样的代码,因为它会在以后造成混淆):
【讨论】: