ajaxStart () показывает, что загрузка сообщения не работает - PullRequest
1 голос
/ 05 мая 2010

Я пользуюсь вызовом jquery.ajax к контроллеру asp.net mvc ... Я хотел бы показать индикатор загрузки ... Я пробовал это, но, похоже, это не работает ...

<div class="loading" style="padding-left:5px; margin-bottom:5px;display:none;">
      Loading...&nbsp
</div>

и мой вызов jquery ajax выглядит следующим образом,

function getMaterials(currentPage) {
    $.ajax({
    url: "Materials/GetMaterials",
        data: {'currentPage': (currentPage + 1) ,'pageSize':5},
        contentType: "application/json; charset=utf-8",
        global: false,
        async: false,
        dataType: "json",
        success: function(data) {
            var divs = '';
            $("#ResultsDiv").empty();
            $.each(data.Results, function() {
                //my logic here....              
                $(".loading").bind("ajaxStart", function() {
                $(this).show();
                }).bind("ajaxStop", function() {
                $(this).hide();
                });
            }
    });
    return false;
}

Мой индикатор загрузки не отображается .. ЛЮБОЕ предложение ...

Ответы [ 2 ]

4 голосов
/ 05 мая 2010

используя .ajax() вам нужно просто позвонить:

beforeSend:  function(xmlHttpRequest){
    // show anything here
}

и

complete:  function(xmlHttpRequest, status){
    // hide it again
}
2 голосов
/ 22 марта 2012

ajaxStart и beforeSend работают для Firefox, но не для всех браузеров (например, Safari), когда мы отправляем вызов ajax с async: false. Я все еще нахожу путь для этого

...