显示加载消息的ajaxStart()似乎不起作用

时间:2010-05-05 07:18:48

标签: jquery loading indicator

我用户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 个答案:

答案 0 :(得分:4)

使用.ajax(),您应该致电:

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

complete:  function(xmlHttpRequest, status){
    // hide it again
}

答案 1 :(得分:2)

当我们使用async:false发送ajax调用时,

ajaxStartbeforeSend适用于Firefox,但不适用于所有浏览器(即Safari)。我还在为这个

寻找方法