在 DOM 准备就绪之前运行 jQuery 代码



有没有办法在DOM准备好之前执行jQuery代码?

jQuery只是Javascript,所以问题实际上是"在DOM准备好之前是否可以运行JavaScript",我猜你的意思是文档而不是DOM。

如果我们同意问题是"是否可以在文档准备好之前运行 JavaScript"。那么答案是肯定的。JavaScript 将在遇到时执行。

这就是为什么你几乎总是看到$(function(){...})$(document).ready(function(){...}),因为大多数jQuery代码要求文档准备就绪,但附加事件处理程序的代码肯定会在文档准备就绪之前执行(否则它将无法处理文档就绪事件)。

通常你应该把你的Javascript包含放在HTML的底部,但如果你想早点执行,你可以简单地把它放在文档的前面,例如在标题中。

<html>
  <head>
     ...
     <script>
        //place your code to be executed early here
     </script>
  </head>
...
</html>

如果你在文档的头部包含jQuery,然后在head中的另一个脚本标签中编写代码,它将在DOM准备好之前运行:

<head>
    <script src="jquery.js"></script>
    <script>
        // Do some stuff before the DOM is ready
    </script>
</head>
<body>
    <!-- Browser hasn't got this far, so no elements will be available -->
</body>

但是,显然您将无法与任何 DOM 元素进行交互,因为它们还不存在。


话虽如此,您可以在现代浏览器中使用一种技术,该技术可以让您在 DOM 元素插入页面时(在浏览器呈现页面时)与它们进行交互。它依赖于CSS动画事件。我编写了一个简单的库(Progressive.js)来使其更易于处理。

最新更新