0

我有一个大的内联 jQuery 函数,我想在底部加载 jQuery 库后触发它。否则我会得到“未捕获的 ReferenceError”。因此,我将该函数包装成一个超时函数——它可以工作,但前提是 DOM 的加载速度快于超时所需的时间。我已经尝试过加载窗口功能,它也给了我“未捕获的引用错误”。

HTML 文档如下所示:

<html>
<head>
...
</head>
<body>
...
<script>

    // Inline jQuery that needs to stay inline

    setTimeout( function(){ 

        // Run my big jQuery function

    }, 100 );

</script>
...
<script src="jQuery-library.js" ><script>
<script src="my-jQuery-functions.js" ><script>
</body>

在文档底部的 jQuery 库完全加载后,有什么方法可以触发我的内联函数,并且可能不将 jQuery 库移动到头部?非常感谢您!

4

1 回答 1

1

您可以对load在所有资源(脚本、图像等)完成加载后发生的事件做出反应:

<script>
window.addEventListener("load", function () {
  $(function () {
      $("body").append("<p>jQuery is available now!</p>");
      
      // Run my big jQuery function
  });
}, false);
</script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

于 2020-10-19T21:06:39.967 回答