不同的功能根據官方的jQuery的文檔:如何指定在JQuery中。總是()每個語句功能
jqXHR.always(function(data|jqXHR, textStatus, jqXHR|errorThrown) { });
另一種結構來完整的回調選項, 。總是()方法替換不推薦的.complete()方法。
爲了響應成功的請求,函數的參數是與.done():data,textStatus和jqXHR對象相同的 。對於 失敗的請求,參數與.fail()的參數相同: jqXHR對象,textStatus和errorThrown。有關實施細節,請參閱deferred.always() 。
而且讓我們說,我有以下的AJAX腳本:
$.ajax({
url: 'myPHPScript.php',
type: 'POST',
data: {
param_1: 'value_1',
param_n: 'value_n'…
},
username: 'myLogin',
password: 'myPassword',
beforeSend: function() {
alert('The object was created but not yet initilized');
}
}).done(function(data, textStatus, jqXHR) {
alert('All the request was sent and we received data');
}).fail(function(jqXHR, textStatus, errorThrown) {
alert('Error: the following error was occurred: ' + textStatus + ' Status : ' + jqXHR.Status);
}).always(function() {
// Here is my problem
});
在。總是()功能,我怎麼可以指定不同的功能,爲每個語句,我的意思是當遞延always()函數獲得以下參數(data,textStatus,jqXHR),但是如果延遲被拒絕,它會通過(jqXHR,textStatus,errorThrown)。
感謝
當然這就是'.done()'和'.fail()'的意思,你可以有多個這樣的回調函數。 – Orbling
@Orling,感謝您的回放,我知道每個.done()和.fail()都會執行我正在查找的部分內容,但正如您可能知道的那樣.fail()僅在執行時其他方式都沒有成功,換句話說,它們並不是每次都一起執行,然而,.always()總是被調用,這就是爲什麼它很重要,但是我說的問題是將代碼的單獨部分按不同狀態執行。 – ghaliloo
難道你不只是檢查第一個參數,看看它是否是'jqXHR'呢? – Orbling