2010-02-01 2 views
2

Можно ли проверить, не готов ли документ и выполнять функцию в jQuery?Есть ли функция NotReady в jQuery?

Просто я хотел бы добиться чего-то вроде:

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

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

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

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

Есть ли встроенная функция в JQuery, чтобы добиться чего-то вроде этого?

ответ

5

Вы можете просто добавить div в верхней части страницы с текстом загрузки и когда документ готов изменить текст для загрузки.

Редактировать

Как @James отметил, существует проблема с селектором. Вы используете divState как селектор тегов, который не будет действителен. Либо вы можете использовать селектор ID или селектор класса в этом случае, как

$("#divState") или $(".divState")

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

+! просто подумайте наоборот! –

0

Нет, насколько мне известно. Вы можете легко 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/