jQuery中$(window).load(function() {})
和$(document).ready(function() {})
之间有什么区别?
答案 0 :(得分:233)
document.ready
是一个jQuery事件,它在DOM准备就绪时运行,例如所有元素都可以找到/使用,但不一定都是内容。window.onload
会稍后(或同时处于最差/失败的情况下),因此,如果您使用的是图片尺寸,那么您经常会我想改用它。答案 1 :(得分:64)
$(document).ready(function() {
// executes when HTML-Document is loaded and DOM is ready
alert("document is ready");
});
$(window).load(function() {
// executes when complete page is fully loaded, including all frames, objects and images
alert("window is loaded");
});
答案 2 :(得分:13)
区别在于:
$(document).ready(function() {
是在加载DOM时触发的jQuery事件,因此在文档结构准备就绪时会触发它。
$(window).load()
事件在加载完整个内容后被触发。
答案 3 :(得分:11)
$(window).load()
在jQuery 3.0中不可用
$( window ).load(function() {
// Handler for .load() called.
});
要解决此问题,可以将其用作“事件处理程序附件”
$( window ).on("load", function() {
// Handler for .load() called.
});
答案 4 :(得分:8)
<html>
<head>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
$( document ).ready(function() {
alert( "document loaded" );
});
$( window ).load(function() {
alert( "window loaded" );
});
</script>
</head>
<body>
<iframe src="http://stackoverflow.com"></iframe>
</body>
</html>
在加载所有iframe内容后将触发window.load
答案 5 :(得分:6)
$(document).ready
在DOM中存在所有元素时发生,但不一定是所有内容。
$(document).ready(function() {
alert("document is ready");
});
所有内容资源(图片等)加载后, window.onload
或$(window).load()
发生。
$(window).load(function() {
alert("window is loaded");
});
答案 6 :(得分:2)
从jquery的角度来看 - 它只是将load
/ onload
事件添加到窗口和文档中。
看看这个:
答案 7 :(得分:0)
根据DOM Level 2 Events,load事件应该在文档上触发, 不在窗口。但是,在所有浏览器的窗口中都实现了加载 向后兼容性。
答案 8 :(得分:0)
document.ready(jQuery) document.ready将在HTML文档加载属性后立即执行,并且DOM已准备就绪。
DOM:文档对象模型(DOM)是一种跨平台且与语言无关的约定,用于表示HTML,XHTML和XML文档中的对象并与之交互。
$(document).ready(function()
{
// executes when HTML-Document is loaded and DOM is ready
alert("(document).ready was called - document is ready!");
});
window.load(内置JavaScript) 然而,window.load将等待页面完全加载,这个 包括内框,图像等 * window.load是一个内置的JavaScript方法,众所周知在旧浏览器(IE6,IE8,旧的FF和Opera版本)中存在一些怪癖,但通常可以在所有这些浏览器中使用。
window.load可以像这样在body的onload事件中使用(但我强烈建议你不要在HTML中混合这样的代码,因为它后来会引起混淆):
$(window).load(function()
{
// executes when complete page is fully loaded, including all frames, objects and images
alert("(window).load was called - window is loaded!");
});
答案 9 :(得分:0)
$(window).load 是一个事件,当DOM和页面上的所有内容(所有内容)像CSS,图像和框架一样完全加载时会触发。一个最好的例子是,如果我们想要获得实际图像大小或获取我们使用它的任何细节。
$(document).ready()表示一旦DOM加载并准备好由脚本操作,其中的代码就需要执行。它不会等待加载图像来执行jQuery脚本。
<script type = "text/javascript">
//$(window).load was deprecated in 1.8, and removed in jquery 3.0
// $(window).load(function() {
// alert("$(window).load fired");
// });
$(document).ready(function() {
alert("$(document).ready fired");
});
</script>
$(window).load在$(document).ready()之后触发。
$(window).load在1.8中已弃用,已在jquery 3.0中删除
答案 10 :(得分:-1)
我认为JQuery 3.x不支持$(window).load
事件