且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

一个函数中的所有ajax调用完成后,如何触发一个函数?

更新时间:2022-03-16 06:50:34

您可以轻松地使用jQuery .ajaxComplete():

You can do it easily with jQuery .ajaxComplete():

// create a counter (global)
var ajax_calls_counter = 0;

// in your current code, in each ajax call success, add 1 to the counter

// manage ajax succeeded events
$(document).ajaxComplete(function(){
    if( ajax_calls_counter == itemsArray.length ){
        showResult();
    }
});

示例( jsFiddle ):

$(function(){

    $(this).ajaxComplete(function(){
        var $body = $('body');
        $body.append('ajax number '+ counter +' call complete!<br />');
        if( counter == array.length ) $body.append('<strong>all</strong> ajax calls completed');
    });

    var array = [1, 2, 3, 4, 5];
    var counter = 0;

    for( var i = 0; i < array.length; i++ ){
        $.ajax({
            url: location.href,
            success: function(){
                counter++;
            }
        });
    }
});