2009-11-10 48 views
6

我大量構建的公司Intranet使用AJAX調用來加載表和其他資源。默認情況下,我有一個模式對話框出現與加載GIF讓用戶知道頁面正在加載。我用jQuery的ajaxSetup設置了這個默認值。爲某些AJAX調用禁用ajaxSetup默認設置

有幾個區域我使用自動完成搜索框。我注意到每次輸入一個字符時都會出現加載對話框。任何方式來爲那個調用禁用ajaxSetup?

感謝您的幫助!

+0

提供一些代碼 – jitter

回答

10

您應該能夠通過每個ajax調用的新選項對象在需要時覆蓋默認設置。

不知道你的模式是在beforeSend還是你有什麼,但我想你會從下面得到圖片。

$.ajax({ beforeSend: function() { /* do nothing */ }.... 
-3

使用$ .ajax()調用來覆蓋在$ .ajaxSetup()中建立的默認值。

9

我猜你建立了一個全局Ajax事件處理程序來創建對話框。這些事件可以爲像這樣的特定請求(從jQuery文檔)被禁用:

全球活動

這些事件被廣播到DOM的所有元素,引發其可以監聽任何處理程序。你可以聽這些事件,像這樣:

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

全球事件可以被禁用,對於特定的Ajax請求,通過傳遞全局選項,就像這樣:

$.ajax({ 
    url: "test.html", 
    global: false, 
    // ... 
}); 
1

禁用ajaxSetup默認一段AJAX調用有一行添加

beforeSend: function(){$.event.trigger('ajaxStart');} 

beforeSend(本地事件)=此事件,將觸發啓動一個Ajax請求之前,讓你修改XMLHttpRequest對象