如果$(文档).not-ready()?如何检查页面是否仍在使用Jquery加载?
我只想在文档仍在加载时调用函数。。我该怎么做?您可以在JavaScript中正常运行函数,并在如果$(文档).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
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);