小编典典

当每个循环中的所有ajax调用成功时,如何采取措施?

ajax

我在.each循环内调用ajax jquery函数,并且仅当循环内的所有ajax调用完成并成功时,我才想执行一个操作。

$(".checked-box").each(function () {
     // ajax call goes here
});
$('.messsage').html('all requests done');

怎么做?否,async: false因为这会阻止浏览器。


阅读 235

收藏
2020-07-26

共1个答案

小编典典

这是一种方法:

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请求之前将其递增,但这是一般的想法。

希望这可以帮助。干杯

2020-07-26