$(window).load()和$(document).ready()函数之间的区别

Sat*_*tya 200 jquery

$(window).load(function() {})$(document).ready(function() {})jQuery有什么区别?

Nic*_*ver 250

  • document.ready是一个jQuery事件,它在DOM准备就绪时运行,例如,所有元素都可以找到/使用,但不一定是所有内容.
  • window.onload图像等被加载时,稍后(或同时在最坏/失败的情况下)激发,因此如果你使用图像尺寸,你经常想要使用它.

  • `$(document).ready(function(){})的简写```$(function(){})`和window.load的另一个重要区别是它将在函数的所有未来调用上运行,即使在最初的DOMready之后. (38认同)
  • @MichaelButler:你需要在评论中更清楚.1)你在谈论用户在DOM准备好后执行更多`$(document).ready`代码.这是一个很小的用例,它可能不值得让每个人都提到它.2)当DOM准备就绪时,ENVIRONMENT只调用`$(document).ready(f unction(){})`一次.如果用户出于某种原因,在DOM准备好后执行更多`$(document).ready`,那么是的,它将立即执行. (7认同)
  • @MichaelButler - 你的意思是什么?它将在所有未来的函数调用中运行? (5认同)
  • 我不同意,迈克尔.让我们把它留在这里,而不是降级为无用的评论.至少困惑的人现在有他们的答案. (4认同)
  • @dbliss是的我相信onload是`$(window).on('load')`的简写.两者都引用了**load**事件. (2认同)

Sag*_*hal 67

$(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");
});
Run Code Online (Sandbox Code Playgroud)

  • @erik-stengel 不! (2认同)

Kea*_*ral 15

$(window).load()在jQuery 3.0中不可用

$( window ).load(function() {
        // Handler for .load() called.
});
Run Code Online (Sandbox Code Playgroud)

要解决它,您可以将其用作"事件处理程序附件"

$( window ).on("load", function() {
        // Handler for .load() called.
});
Run Code Online (Sandbox Code Playgroud)


Bha*_*iya 14

不同之处是:

$(document).ready(function() { 是在加载DOM时触发的jQuery事件,因此在文档结构准备好时会触发它.

$(window).load() 加载整个内容后触发事件.


Sha*_*ool 9

<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>
Run Code Online (Sandbox Code Playgroud)

加载所有iframe内容后将触发window.load


Pur*_*iya 7

$(document).ready 当所有元素都存在于DOM中时发生,但不一定是所有内容.

$(document).ready(function() {
    alert("document is ready");
});
Run Code Online (Sandbox Code Playgroud)

window.onload或者$(window).load()在加载了所有内容资源(图像等)之后发生.

$(window).load(function() {
    alert("window is loaded");
});
Run Code Online (Sandbox Code Playgroud)