Как вызвать jquery ajaxStart + ajaxComplete - PullRequest
9 голосов
/ 16 сентября 2009

У меня есть функция загрузки, и я хотел бы, чтобы код записывал html в div, пока он загружается и по завершении отображает страницу. Я видел несколько небольших записей о событиях ajaxStart и ajaxComplete, однако я не уверен, как их реализовать.

Вот jquery, который я собираюсь использовать, но не знаю, как реализовать его в коде, который у меня сейчас…

$(document).ajaxStart(function(){ 
    $('#content').html("Loading Content...");
    });

Вот текущий jquery, который я использую:

//Load content
$(".load").click(function(){
    $("#content").empty();           
    loadName = $(this).attr("id");
    $("#content").load("/content/" + loadName + ".php");
    }); 

1 Ответ

17 голосов
/ 16 сентября 2009

Если это отдельный div и вы хотите обновить его содержимое загрузочным сообщением / индикатором, вы можете сделать это следующим образом:

$("#content").html('<strong>Loading...</strong>')
             .load("/content/" + loadName + ".php");

Я бы не использовал глобальные события ajaxStart и ajaxStop / ajaxComplete , если у вас нет общего индикатора загрузки для всех вызовов ajax. Тем не менее, это может быть сделано следующим образом:

$("#loading").bind("ajaxStart", function(){
    $(this).show();
}).bind("ajaxStop", function(){
    $(this).hide();
});

где элемент loading - это то, что вы хотите раскрыть во время вызова ajax.

...