2013-08-21 31 views
4

執行我有一個裝載DIV裝載機應該在Ajax的請求露面。防止.ajaxStart()從一個特定的Ajax請求

$('#loadingDiv').ajaxStart(function() { 
     $(this).show(); 
    }).ajaxComplete(function() { 
     $(this).hide(); 
    }); 

我希望加載器在所有Ajax請求期間都顯示出來,但是在特定的請求中阻止它。

我試過如下:

$.ajax({ 
       url: 'Handler.ashx', 
       success: function (msg, status, xhr) { 
        $('#loadingDiv').hide(); 
}..... 

但在div顯示出來,然後消失,我不希望它顯示在所有。

$.ajax({ 
    url: 'Handler.ashx', 
    global: false, 
    ... 
}); 

Ajax.Events文檔:

回答

0
$.ajax({ 
       url: 'Handler.ashx', 
beforesend:function(){ 
// apply your code 
}, 
       success: function (msg, status, xhr) { 
        $('#loadingDiv').hide(); 
}..... 
在進行請求時

參考ajax

1

在您的Ajax選項中使用global: false可以使請求不觸發任何global event handlers

$.ajax docs說的global選項:

設置爲false,以防止像ajaxStartajaxStop全球處理程序被觸發。

.ajaxStart docs

如果$.ajax() ......被稱爲與global選項設置爲false,該.ajaxStart()方法將不會觸發。

3

DEMO

試試這個

$.ajax({ 
        url: 'Handler.ashx', 
        beforeSend:function(){ 
       if (<conditon>)    /// check your condition here 
        $('#loadingDiv').show(); 
        else 
         $('#loadingDiv').hide(); 
        }, 
        success: function (msg, status, xhr) { 
         $('#loadingDiv').hide(); 
    } 
    }); 

希望這會有所幫助,謝謝

+0

上點擊事件的另一個演示http://jsfiddle.net/6HcpV/2/ – SarathSprakash

+0

這也可以,謝謝! –