3

我希望快速连续触发几个 jQuery AJAX 请求,因此响应不会在下一个请求之前出现。但是,我确实想使用成功函数处理这些响应中的每一个。

使用以下代码,前两个响应将被忽略,只有最后一个响应。

$('#button').click(function() {
    var num = 3;
    for(var i=0;i<num;i++)
        ajaxCall(i);
}


function ajaxCall(data){
    $.ajax({
        url: '/echo/html/',
        success: function(msg) {
            alert(msg);
        }
    });
}

但是,我正在努力使所有三个警报都显示出来。似乎每次ajaxCall调用该函数时,它都使用与上次相同的“对象”,而不是实例化一个新对象,这正是我想要做的。

4

1 回答 1

-1

试试这个(使用延迟对象

$('#button').click(function() {
    var num = 3;
    for(var i=0;i<num;i++) {
        ajaxCall(i).done(function(data) 
           { 
             alert(data) 
           }
        );
     }
});


function ajaxCall(data){
    return $.ajax({
        url: '/echo/html/'
    });
}
于 2012-11-28T20:09:12.743 回答