0

是否有正确的语法使用 jQuery$().ready来检查 DOM 是否准备好,而不是在 DOM 加载后创建回调函数?

例如,如果 DOM 准备好了,我想运行不同的代码。

function checkDOMReady() 
{
    if ($(document).ready)
        alert("The DOM was ready when this function was called");
    else
        alert("The DOM was NOT ready when this function was called");
}

这是有效的吗?如果没有,有正确的方法吗?

编辑:我很清楚$(document).ready(function(){});等等,但这不是我想要的。我有一个每 10 分钟运行一次的脚本,包括最初加载页面的时间,如果文档准备好,我想运行不同的代码,如果没有,我想运行其他代码。我可以将这些数据存储在全局/静态变量中,但我想知道是否可以简单地评估一个布尔表达式来检查是否可以操作 DOM。

4

3 回答 3

3

使用 jQuery,您可以使用:

    var isready = false;

    $(function() {
     isready = true;
    });

在此处阅读有关它的更多信息

于 2012-05-02T11:23:57.123 回答
3

我不明白你为什么要这样做。在任何情况下,您都可以在文档就绪回调中设置一个变量并检查该变量。

于 2012-05-02T11:21:06.843 回答
1

@Lucero 是对的,但在某些情况下,您需要一个标志来指示内容已准备好(可能与另一个框架同步......)。如果是这种情况,您可以创建一个窗口范围的变量来发出信号并将其值设置为$(document).ready

// declare your "global" flag as false
window.flagDomLoaded = false;

// set the global to true to signal that the contents are ready
$(document).ready(function(){ window.flagDomLoaded = true; });

// check the global flag on your code
function checkDOMReady() 
{
    if (window.flagDomLoaded)
        alert("The DOM was ready when this function was called");
    else
        alert("The DOM was <b>NOT</b> ready when this function was called");
}

请注意,我建议您使用更标准的方法,例如 @Lucero 或 @Sandeep 解决方案。如果你不能那样做,这个解决方案是可以接受的。

于 2012-05-02T11:37:32.940 回答