3

私はいくつかの jQuery AJAX リクエストを立て続けに起動しようとしているので、次のリクエストの前に応答が来ません。ただし、これらの応答のそれぞれを成功関数で処理したいと考えています。

次のコードでは、最初の 2 つの応答は無視され、最後の応答のみが応答されます。

$('#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);
        }
    });
}

ただし、3 つのアラートすべてが表示されるようにしようとしています。関数が呼び出されるたび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 に答える