[英]Do I have to use document ready for jQuery?
我有一个我想使用的脚本,但是,我不知道我是否需要准备好文档。
$(window).scroll(function(){ $(".hero-h1").css("opacity", 1 - $(window).scrollTop() / 250); });
如果 position 并运行您的脚本,以便它所依赖的元素在运行时已经存在,则不。
这与是否有人需要使用本质上是相同的问题
window.addEventListener('DOMContentLoaded', () => {
// all of the code
});
如果,在您的脚本运行时,您尝试 select 一个无论如何并不总是存在的元素 - 例如页面上的特定<div>
$('.mybutton').on('click', () => {
// ...
然后在上面的行运行时,您需要确保页面上存在.mybutton
。
这可以通过几种方式来实现。 其中一种方法是将整个脚本包装在.ready
中(或者,现在通常首选,只是一个普通函数):
$(() => {
$('.mybutton').on('click', () => {
// ...
可以完成的另一种方法是将脚本放在 HTML 标记中依赖的所有元素之后 - 例如
// lots of HTML code
<button class="mybutton">click</button>
<script src="myscript.js"><script>
</body>
如果将脚本放在正文的末尾,那么 static 页面标记中的所有元素都将存在于 DOM 中。
第三种方法是为您的脚本赋予defer
属性。
<script defer src="myscript.js"><script>
这将确保在脚本运行之前加载所有 static 元素。
对于您的这种特殊情况,如果您所做的只是将滚动处理程序添加到 window,则无需等待任何元素来附加处理程序,因此您可能不需要使用上述任何方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.