0

jquery ajaxコールバックに奇妙な状況があります

var isOk = false;

 CheckStoreAvailability(store, function (result) {
            isOk = result;
             alert(result);  >> show message true    
});

alert(isOk );

CheckStoreAvailability の戻り値が isOk に割り当てられるものに関係なく、常にfalseが表示されます!!

私は今立ち往生しています。助けてください。

ありがとう。

4

2 に答える 2

1

アラートsecondが実行されbeforeCheckStoreAvailability非同期呼び出しが原因で呼び出されます。そのため、更新された値を取得できません。

この投稿の回答を確認してください。関数呼び出しがどのように使用されるかdone()、それに応じて呼び出しを変更できます。

于 2012-12-17T11:17:52.540 に答える
1

AJAXは非同期であるため、alert(isOk);行はAJAX呼び出しが完了する前に実行され、拡張すると、AJAX要求のコールバック関数によって値が変更される前に実行されます。

その値を操作する場合は、AJAX呼び出しからの応答を処理する関数内で実行します。

于 2012-12-17T11:18:15.580 に答える