jquery - 为什么 $.ready 会触发 jQuery document.ready 事件?

标签 jquery document-ready

我们最近遇到了一个错误,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 尚未完全加载。

http://jsfiddle.net/Kq78e/

我的问题是为什么 $.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/

相关文章:

javascript - jQuery.proxy 中的第三个参数是做什么用的?

javascript - 为什么我的 spritesheet 被加载了多次?

jquery - 我的 jQuery 就绪函数触发得太早了...它还没有准备好!

jquery - $(document).ready 有必要吗?

jquery - 在垂直中心位置将图像分层放置在 royalslider 上

jquery - 如何保存 jQuery Get 响应到 React 变量?

jquery - 在最近添加的 jquery 函数中调用 jquery 函数

jquery - 在 webkit 浏览器刷新 $(document).ready 之后加载图像

javascript - 是否可以结合 document.ready 功能和按钮点击功能?

javascript - Jquery keyup 不适用于 Android