我们最近遇到了一个错误,jquery document.ready 似乎在 DOM 加载之前触发。事实证明,在调用的第一个项目之后有一些错误的代码
$.ready(function(){});
这条语句似乎触发了 document.ready 事件。
以下是代码示例:
<script>
$(function(){
alert("loaded");
});
</script>
<ul>
<li> hello </li>
<script>
$.ready(function(){
});
</script>
<li> worldddd</li>
</ul>
这是一个 jsfiddle,您可以在其中看到执行警报时 dom 尚未完全加载。
我的问题是为什么 $.ready() 会触发 dom 就绪事件?这是一个 jquery“功能”,允许您强制触发 dom.ready 事件吗?
最佳答案
它触发事件,因为它是事件的处理程序。 http://github.com/jquery/jquery/blob/1.9-stable/src/core.js#L397
它是一个内部方法,不应该在 jQuery 核心之外使用,除非您知道它的作用、为什么这样做,并且有充分的理由使用它。
它只是告诉 jQuery DOM 已准备就绪。这是应用于 DOMContentLoaded 事件的处理程序。正如您所注意到的,您自己调用它可能会导致事件发生得太早。您的代码中的用法很可能是这样的:
$(document).ready(function(){
});
关于jquery - 为什么 $.ready 会触发 jQuery document.ready 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16921754/