【问题标题】:In JQuery, how do I check if the DOM is ready? [duplicate]在 JQuery 中,如何检查 DOM 是否准备好? [复制]
【发布时间】:2011-12-04 07:19:18
【问题描述】:

可能重复:
javascript domready?

我想检查$(function(){ }); 是否“准备就绪”。

如果 DOM 准备好返回 true,否则返回 false

【问题讨论】:

  • 请改写?我不太明白你想要什么。在回调(在您的示例中,function() {})运行之前,DOM 已准备就绪。
  • 人们(包括 jQuery API 文档)称其为“文档就绪功能”。 ;-)

标签: javascript jquery


【解决方案1】:

来自 jQuery 代码

如果(jQuery.isReady){ fn.call( 文档, jQuery ); }

【讨论】:

  • 只是在这里发表评论,这不是一个记录的属性,jQuery 的作者可以随时更改/删除此属性,恕不另行通知。使用风险自负,更新 jQuery 时要小心。
【解决方案2】:

你可以使用显式调用

$(document).ready(function(){
  // do this after dom is ready
});

或者使用快捷方式

$(function(){
  // do this after dom is ready
});

当您使用其他库时,将 jQuery 包装在匿名函数中也很有用;在编写 jQuery 插件时也很常见。

(function($, window){
  // use $ here freely if you think any other library might have overridden it outside.
  $(function(){
    // do this after dom is ready
  });
})(jQuery, window);

最后,你可以使用jQuery.isReady (bool)

if (jQuery.isReady) {
  // do something
}

【讨论】:

  • 你也可以jQuery(function($) { /* jQuery is aliased to $ inside this block even if another library is normally assigned to $ */ });
【解决方案3】:

该函数只会在 dom 准备好时执行。这就是将代码包装在该函数中的重点;)。话虽如此,有些东西(如图像、延迟脚本等)可能尚未完全加载或呈现,所以请注意。

【讨论】:

    【解决方案4】:

    您可以使用jQuery.isReady,但它没有记录,应该避免使用。

    如果你只需要在 DOM 准备好之后运行一些东西,你可以调用

    $(document).ready(function() {
        ...
    });
    

    正常 - 如果 DOM 准备好,它将立即运行代码,如果没有,则等待。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-12
      • 2014-06-30
      • 1970-01-01
      • 2015-11-18
      • 2011-05-06
      • 1970-01-01
      • 1970-01-01
      • 2021-06-30
      相关资源
      最近更新 更多