我在.each循环内调用ajax jquery函数,并且仅当循环内的所有ajax调用完成并成功时,我才想执行一个操作。
$(".checked-box").each(function () { // ajax call goes here }); $('.messsage').html('all requests done');
怎么做?否,async: false因为这会阻止浏览器。
async: false
这是一种方法:
var numberOfPendingRequests = 8; $(".checked-box").each(function () { $.ajax({ success: function(){ ... numberOfPendingRequests --; if(numberOfPendingRequests == 0) allDone(); } }); }); function allDone(){ $('.messsage').html('all requests done'); }
您可以根据numberOfPendingRequests复选框的数量来计算初始值,也可以从0开始,在每次ajax请求之前将其递增,但这是一般的想法。
numberOfPendingRequests
希望这可以帮助。干杯