我有一个for循环语句,每个循环都会执行一个ajax调用。
$.each(arr, function(i, v) {
var url = '/xml.php?id=' + v;
$.ajax({
url: url,
type: 'GET',
dataType: 'xml',
success: function(xml) {
if ($(xml).find('Lists').attr('total') == 1) {
// some code here
}
},
complete: function() {
// some code here
}
})
})
我想在之后运行代码allajax调用在循环下完成,我尝试将下面的代码放在最后一行,当ajax调用完成时它不会执行
if (i == arr.length - 1) {
// some code here
}
因此,如果我有10次循环,就有10次ajax调用。我想在 10 次 ajax 调用完成后运行代码,有什么想法吗?
是不是比较好用.ajaxComplete()
or .done()
实现它吗?
Thanks
尝试使用$.when()
var arr = [];
$.each(arr, function(i, v) {
var url = '/xml.php?id=' + v;
var xhr = $.ajax({
url: url,
type: 'GET',
dataType: 'xml',
success: function(xml) {
if ($(xml).find('Lists').attr('total') == 1) {
// some code here
}
},
complete: function() {
// some code here
}
});
arr.push(xhr);
})
$.when.apply($, arr).then(function(){
console.log('do')
})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)