0

更新:問題は別の場所にありました。同じ属性で 3 回呼び出しました。したがって、同じ問題がある場合は、$.ajax の前に属性値を確認してください

私はjQuery ajax呼び出しを持っています:

function foo(someVar){
    $.ajax({
        dataType: "json",
        url: 'http://some.json?callback=?',
        success: function(data){
            alert(someVar);
        }
    });
}

複数の呼び出しを行う場合:

getPriceByRoute('a');
getPriceByRoute('b');
getPriceByRoute('c');

で 3 つのアラートを受け取りcます。

someVar成功関数に送信するにはどうすればよいですか?

やろうとした:

function foo(someVar){
    $.ajax({
        dataType: "json",
        //
        myVars:{someVar:someVar},
        //
        url: 'http://some.json?callback=?',
        success: function(data){
            alert(this.myVars.someVar);
        }
    });
}

でも同じ結果。

最後のケースでは、前回のロード後にすべての次のリクエストを送信できますが、他の良い解決策があることを願っています.

4

1 に答える 1

2

contextオプションを使用して$.ajax

$.ajax({
    ...
    context: {someVar:someVar}, // sets the value of "this" inside the success function
    ...
    success: function(data){

        // "this" is {someVar:someVar}, as set via the context option
        alert(this.someVar);
    }
});
于 2013-03-29T07:30:52.153 に答える