不同的功能根据官方的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