2010-02-01 25 views
2

是否有可能检查文档是否准备好并在jQuery中定期执行一个函数?jQuery中有NotReadyFunction吗?

只要我想实现这样的:

$('document').isNotReady(function(){ 

    $('#divState').text('Still Loading'); 
}); 

$('document').Ready(function(){ 

    $('#divState').text('Loaded'); 
}); 

是否有jQuery的内置功能来实现这样的事情?

回答

5

您只需在页面顶部添加加载文本的div,并在文档准备就绪后将文本更改为加载。

编辑

正如@詹姆斯指出,有一个与你选择的一个问题。您正在使用divState作为标签选择器,这将无效。要么你可以像

$("#divState")$(".divState")

$(function(){ 
    $('#divState').text('Loaded'); 
}); 
+0

+!只是想相反的方向! – 2010-02-01 09:21:08

0

不受限制,只要我知道在这种情况下使用id选择或类选择。你可以很容易尽管immidate它:

var bIsReady = false; 

$('document').Ready(function(){ 
    bIsReady = true; 
    $('divState').text('Loaded'); 
}); 

/* 
    use bIsReady somehow 
/* 

但我不知道你为什么会想时,你可以设置它的HTML:

<div>Still Loading</div> 

,然后改变它,按您的代码在文件准备就绪的时候。另外,如果有一些NotReady函数,你不能保证你设置的DIV实际上已经准备好了。

此外,您正在选择一个名为DivState的元素。你的意思是:$('#DivState')

1

HTML部分:

<input type="button" onclick="example_ajax_request()" value="Click Me!" /> 
<div id="example-placeholder"> 
    <p>Placeholding text</p> 
</div> 

jQuery的一部分:

function example_ajax_request() { 
    $('#example-placeholder').html('<p><img src="/images/ajax-loader.gif" width="220" height="19" /></p>'); 
    $('#example-placeholder').load("/examples/ajax-loaded.html"); 
} 

来源:http://www.electrictoolbox.com/load-content-jquery-ajax-loading-image/