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");
        }
    });
});

我希望能够单击同一个按钮三次并显示所有测试,但它直接进入最后一个选项"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 = 1x = 1他们所做的只是分配window.x = 1

于 2013-03-28T01:50:14.980 回答