有没有办法在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)来使其更易于处理。