if $(document).not-ready()? 如何检查页面是否仍在加载Jquery?
我只想在文档仍在加载时才调用函数..我该怎么办?
您可以检查document.readyState
或在全局范围中使用简单变量:
var ready = false; $(document).ready(function () { ready = true; });
您可以在JavaScript中正常运行函数并在jQuery.ready
覆盖它:
function foo() { // … } $(document).ready(function() { foo = function() {}; }); foo();
现在,如果foo
递归方式调用自身,则在文档准备好时重新定义foo
时它将停止。
您可以使用非常有用的jQuery延迟对象来检查文档是否尚未加载:
http://api.jquery.com/category/deferred-object/
http://eng.wealthfront.com/2012/12/jquerydeferred-is-most-important-client.html
例如
(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);
jsFiddle示例