Есть ли NotReadyFunction в jQuery? - PullRequest
       36

Есть ли NotReadyFunction в jQuery?

2 голосов
/ 01 февраля 2010

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

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

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

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

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

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

Есть ли в jQuery встроенная функция для достижения чего-то подобного?

Ответы [ 3 ]

5 голосов
/ 01 февраля 2010

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

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

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

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

$(function(){
    $('#divState').text('Loaded');
});
1 голос
/ 01 февраля 2010

HTML часть:

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

jПросмотр части:

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/

0 голосов
/ 01 февраля 2010

Не настолько, насколько я знаю. Вы можете легко имитировать это, хотя:

var bIsReady = false;

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

/*
    use bIsReady somehow
/*

Но я не уверен, почему вы захотите, когда вы можете просто установить его в HTML:

<div>Still Loading</div>

А затем измените его в соответствии с приведенным выше кодом, когда документ будет готов.

Кроме того, если была какая-то функция NotReady, вы не могли гарантировать, что установленный вами DIV действительно готов.

Кроме того, вы выбираете элемент с именем DivState. Возможно, вы имеете в виду: $('#DivState')?

...