Jquery 您如何知道文档是否已准备就绪

Jquery 您如何知道文档是否已准备就绪,jquery,Jquery,我有一个生成HTML块的JavaScript。此脚本有时在运行时的某个地方调用,有时在加载文档之前调用。我想要一个脚本,能够告诉如果文件准备好。如果是,则生成HTML,否则,添加document.ready()函数。jQuery了解文档是否已加载的最佳方法是什么?使用事件: 使用load事件,DOM、图像、帧和任何其他外部资源都会加载到文档中。始终将HTML生成代码包装在$(document).ready()中是安全的。如果文档已准备就绪,将立即执行新注册的$(document).ready()

我有一个生成HTML块的JavaScript。此脚本有时在运行时的某个地方调用,有时在加载文档之前调用。我想要一个脚本,能够告诉如果文件准备好。如果是,则生成HTML,否则,添加document.ready()函数。jQuery了解文档是否已加载的最佳方法是什么?

使用事件:


使用
load
事件,DOM、图像、帧和任何其他外部资源都会加载到文档中。

始终将HTML生成代码包装在$(document).ready()中是安全的。如果文档已准备就绪,将立即执行新注册的$(document).ready()回调。

$(document).ready(
    function() {
        //code to execute once the page is loaded
    }
);

您可以在加载DOM后使用ready事件来运行操作

$(document).ready( function() {
  // your function
});
$(document).load( function() {
  // your function
});
或加载事件,直到完全加载所有内容

$(document).ready( function() {
  // your function
});
$(document).load( function() {
  // your function
});

除非您知道需要使用load事件,否则我将使用ready事件(我相信这是DOMContentLoaded事件)。

我也遇到了这个问题。我有一个自动隐藏机制,在加载其余文档时触发得太快(如果在第一个位置显示的话)。通过添加一个在document.ready()上翻转为TRUE的全局布尔值,我相当容易地解决了这个问题

在我的JS顶部:

var documentReady = false;
我的onReady功能:

$(document).ready(function(){
    documentReady = true;
    ...
}

你甚至不需要那么多。您只需执行
$(function(){…})
$(document).load()
不起作用。测试它:您需要
$(窗口).load()
$(文档).ready()
(或等效快捷方式)。+1这是一个很好的解决方案,因为OP似乎并不担心图像被完全下载。已经有很多建议,但是使用
$(文档).ready()
这正是您想要的。在幕后,当调用此函数时,jQuery检查DOM是否就绪。如果是,它只执行包含的函数。如果不是,则添加就绪事件。
$(document).ready(function(){
    documentReady = true;
    ...
}