如果检查$ .each()函数中包含的ajax查询中没有错误,如何运行callback()?
var resp_error = false;
$(".items").each(function() {
ajax_item($(this)).done(function(resp){
if (resp.val == 0) return (resp_error = true);
});
});
if (!resp_error) callback();
其中ajax_item(item)是延迟的ajax查询:
function ajax_item(item) {
return $.ajax({
...
});
};
ajax查询返回 val
,并在resp_error
时触发错误(val = 0
)。
我认为最好的方法是使用$ .when(),但我找不到编码的方法吗?
答案 0 :(得分:0)
最简单的方法是:
$(document).ajaxStop(function() {
// place code to be executed on completion of last outstanding ajax call here
});
答案 1 :(得分:0)
好的,我找到了它!
var resp_error = false;
var ajax_calls = [];
$(".items").each(function() {
ajax_calls.push(ajax_item($(this)).done(function(resp){
if (resp.val == 0) return (resp_error = true);
}));
});
$.when.apply($, ajax_calls).then(function() {
if (!resp_error) callback();
});