1

これが私のコードのサンプルです。不要な部分を削除しました。グローバル変数を設定しましたrecipient。アラートである必要があります1が、何もアラートされていません。関数の外に設定された変数を変更する正しい方法は何ですか? どうすればこれを解決できますか?

var recipient = 0;

$("#submit-button").click(function () {

    $.getJSON("/fetch.php?o=4&user=" + k, function (B) {
        $.each(B, function (index, result) {
            recipient = 1;

        })

    })

    if (recipient == 1) {
        alert("yes");
    }
})
4

2 に答える 2

4

これは非同期呼び出しによるもので、条件を if の後に置くのではなく、コールバック関数に入れます。コールバックは、クリック関数の実行が終了した後に呼び出されます。

var recipient = 0;      


$("#submit-button").click(function() {

  $.getJSON("/fetch.php?o=4&user=" + k, function(B) {
       $.each(B, function(index, result) {
            recipient = 1;    
       });
      if(recipient==1) {
         alert("yes");
      }
   });
});
于 2013-07-03T18:15:35.370 に答える
1

JSON 要求が完了する前に、受信者が 1 であるかどうかを確認しています。コールバック関数内に追加します。

var recipient = 0;

$("#submit-button").click(function () {
    $.getJSON("/fetch.php?o=4&user=" + k, function (B) {
        $.each(B, function (index, result) {
            recipient = 1;
        });

        if (recipient == 1) {
            alert("yes");
        }
    });
});
于 2013-07-03T18:15:51.640 に答える