Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果$(文档).not-ready()?如何检查页面是否仍在使用Jquery加载?_Jquery_Document Ready - Fatal编程技术网

如果$(文档).not-ready()?如何检查页面是否仍在使用Jquery加载?

如果$(文档).not-ready()?如何检查页面是否仍在使用Jquery加载?,jquery,document-ready,Jquery,Document Ready,我只想在文档仍在加载时调用函数。。我该怎么做?您可以在JavaScript中正常运行函数,并在jQuery中覆盖它。就绪: function foo() { // … } $(document).ready(function() { foo = function() {}; }); foo(); 现在,如果foo递归调用自身,当文档准备就绪时重新定义foo时,它将停止。您可以在全局范围内检查或使用一个简单变量: var ready = false; $(document).re

我只想在文档仍在加载时调用函数。。我该怎么做?

您可以在JavaScript中正常运行函数,并在
jQuery中覆盖它。就绪

function foo() {
    // …
}
$(document).ready(function() {
    foo = function() {};
});
foo();
现在,如果
foo
递归调用自身,当文档准备就绪时重新定义
foo
时,它将停止。

您可以在全局范围内检查或使用一个简单变量:

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

您可以使用非常有用的jQuery deferred对象来检查文档是否已加载/尚未加载:

例如


为什么不使用简单变量而不是递归方法呢?当我看到这些问题时,我的问题是,为什么不把代码放在
$().ready()中呢。我想这是因为你想在文档还没有准备好的时候做些什么?在Chrome 65中,页面在第一个警报后加载,并且从不显示
alert('Doc is ready')
@Dshiz我刚刚在Chrome 65中测试了JSFiddle链接,效果很好?@Dshiz一定是出了其他问题。如果你和前男友调情,我很乐意帮你。
(function($) {    
    var jqReady = $.Deferred();
    // Bind doc ready to my deferred object
    $(document).bind("ready", jqReady.resolve);

    // Check to see is doc is ready
    if(jqReady.state() !== 'resolved'){
        alert('Doc is not ready');
    }

    $.when(jqReady).then(function () {
        // Code here will run when doc is ready/state === 'resolved'
        alert('Doc is ready');
    });
})(jQuery);​