0

サーバーサイドスクリプトから情報の要求を送信するために$.ajax()関数を使用する場合、コールバック関数にパラメーターを渡すことができますか?

例:

var params = ['param1', 'param2', 'param3']; 
for (var i = 0; i < params.length; i++) {
    $.ajax({
        url: url,
        dataType: "json",
        success: function(json, textStatus, jqXHR){
            console.log(params[i]);             
        }
    });
}

しかし、それは機能しません。アイデアはありますか?

4

2 に答える 2

2

と の両方がグローバル名前空間に存在するため、AJAX 呼び出しが for ループよりも時間がかかると仮定すると、それぞれparamsがの最後の値を取得します (男の子、その方が良いです)。isuccessi

関数で AJAX 呼び出しをラップし、パラメーターを関数に渡します。その後、内部から直接呼び出すことができますsuccess

于 2013-01-22T23:37:54.107 に答える
1

オプションを使用してURLに渡しdata、応答で返す必要があるため、非同期成功コールバックに含まれます。

ちなみに、ループ外の関数で ajax ビット全体をラップし、forループ内から呼び出す必要があります。このような

var params = ['param1', 'param2', 'param3']; 

function do_stuff(param){
    $.ajax({
        url: url,
        dataType: "json",
        data: {
            'param' : param
        },
        success: function(json, textStatus, jqXHR){
            console.log(json.param);    
        }
    });
}

for (var i = 0; i < params.length; i++) {
  do_stuff(params[i]);
}
于 2013-01-22T23:18:08.493 に答える