JavaScript 的window.onload和 jQuery 的$(document).ready()方法有什么区别?
ready事件发生在加载 HTML 文档之后,而onload事件发生在稍后,此时所有内容(例如图像)也已加载。
onload事件是 DOM 中的标准事件,而ready事件特定于 jQuery。 ready事件的目的是它应该在文档加载后尽早发生,以便为页面中的元素添加功能的代码不必等待加载所有内容。
window.onload是内置的 JavaScript 事件,但由于它的实现在浏览器中有微妙的怪癖(Firefox,Internet Explorer 6,Internet Explorer 8 和Opera ),jQuery 提供了document.ready ,它将这些内容抽象出来,并尽快解雇当页面的 DOM 准备就绪(不等待图像等)。
$(document).ready (注意它不是 document.ready ,这是未定义的)是一个 jQuery 函数,包装并提供以下事件的一致性 :
document.ondomcontentready / document.ondomcontentloaded - 一个新的事件,在加载文档的 DOM 时触发(可能是在加载图像等之前的某个时间); 再次,在 Internet Explorer 和世界其他地方略有不同window.onload (甚至在旧浏览器中实现),在整个页面加载时触发(图像,样式等) $(document).ready()是一个 jQuery 事件。一旦 DOM 准备好就会调用 JQuery 的$(document).ready()方法(这意味着浏览器已经解析了 HTML 并构建了 DOM 树)。这使您可以在文档准备好被操作后立即运行代码。
例如,如果浏览器支持 DOMContentLoaded 事件(就像许多非 IE 浏览器那样),那么它将触发该事件。 (请注意,DOMContentLoaded 事件仅在 IE9 + 中添加到 IE 中。)
可以使用两种语法:
$( document ).ready(function() {
console.log( "ready!" );
});或速记版本:
$(function() {
console.log( "ready!" );
}); $(document).ready()要点:
jQuery替换$ 。 $(window).load() 。 window.onload()是一个原生的 JavaScript 函数。当页面上的所有内容都已加载时,会触发window.onload()事件,包括 DOM(文档对象模型),横幅广告和图像。两者之间的另一个区别是,虽然我们可以有多个$(document).ready()函数,但我们只能有一个onload函数。