2

グローバル変数の作成と jquery によるリセットに問題があります。ここに私のコードがあります

var x = 1;
$(document).ready(function () {
    $("#button").click(function () {
        if(x === 1) {
            alert("test1");
            var x = 2;
        } else if(x === 2) {
            alert("test2");
            var x = 3;
        } else {
            alert("test 3");
        }
    });
});

同じボタンを 3 回クリックしてすべてのテストを表示できるようにしたいのですが、代わりに最後のオプションに直接移動します"test 3"。これがばかげた質問であれば申し訳ありませんが、私はjqueryとjavascriptに少し慣れていません。

4

1 に答える 1

3

varクリック イベント コールバック内の変数割り当てから を削除するだけです。はvar、変数をそのスコープ/クロージャに対してローカルにします。

 if (x === 1) {
      alert("test1");
      x = 2;
  }
  else if (x === 2) {
      alert("test2");
      x = 3;
  }
  else {
      alert("test 3");
  }

サイドポイントとして、最初varは必要var x = 1ありx = 1ません。コードがクロージャ/関数にない場合も同じことを行います。彼らがしているのは、割り当てだけwindow.x = 1です。

于 2013-03-28T01:50:14.980 に答える