将jQuery脚本延迟到其他所有加载之后

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (34)

我有一个jQuery脚本,我只需要运行一次页面上的其他所有内容,包括其他一些JavaScript(我无法控制)已经完成了它们的工作。

我想,除了$(文档)之外,我可能还有其他的选择。

提问于
用户回答回答于

将代码包装到新自定义事件的事件处理程序中。

<html>
<head>
<script>
    $(document).on("my-event-afterLastDocumentReady", function () {
        // Fires LAST
    });
    $(document).ready(function() {
        // Fires FIRST
    });
    $(document).ready(function() {
        // Fires SECOND
    });
    $(document).ready(function() {
        // Fires THIRD
    });
</script>
<body>
... other code, scripts, etc....
</body>
</html>

<script>
    $(document).ready(function() {
        // Fires FOURTH
        // This event will fire after all the other $(document).ready() functions have completed.
        // Usefull when your script is at the top of the page, but you need it run last
        $(document).trigger("my-event-afterLastDocumentReady");
    });
</script>
用户回答回答于

你可以在一个页面中多次$(document).ready()。代码按照出现的顺序运行。

可以使用$(window).load()事件代码,因为这是在页面完全加载并且各个$(document).ready()处理程序中的所有代码已经完成运行之后发生的。

$(window).load(function(){
  //your code here
});

扫码关注云+社区

领取腾讯云代金券