0

スコープ外の変数を処理するために jQuery コールバックが必要な状況があります。簡単にするために、次のコードを想定します。

$('#myBtn').on('click', function(e) {
    var num = 1;

    // assume this returns the following:
    // { success : true, num : 1 }
    $.getJSON('/api/get_number', {}, function(response) {
        if ( response.success ) {
            // here, num is unknown unless I define it as a
            // global variable
            num += response.num ;   
        }
    });

    console.log(num); // => want 2, get 1
});

コールバック関数内で num を使用できるようにしたいと思います。グローバル変数を宣言せずにこれを行う良い方法は何ですか (onclick 関数の外で num を宣言します)? サーバーから送信せずに引数として渡す方法はありますか? ありがとう。

4

1 に答える 1

-1
$('#myBtn').on('click', function(e) {
    var num = 1;

    // assume this returns the following:
    // { success : true, num : 1 }
    $.getJSON('/api/get_number', {}, function(response) {
        // get responce
        if ( response.success ) {
            // here, num is unknown unless I define it as a
            // global variable
            num += response.num ;   
            console.log(num); // you will get 2 here
        }
    });
    // responce havnt get ,you always get 1
    console.log(num); // => want 2, get 1
});
于 2012-06-18T02:33:23.473 に答える