Javascript &引用;如果;语句在每次发生时执行相同的操作

Javascript &引用;如果;语句在每次发生时执行相同的操作,javascript,jquery,html,css,if-statement,Javascript,Jquery,Html,Css,If Statement,在尝试为每次运行if语句切换turn变量时,我总是得到相同的结果。每次,turn计算为2 代码如下: $(function() { var turn = 2; if (turn == 1) { $(".box").on("click", function() { var $thisBox = $(this).children(); $thisBox.addClass("x").animate({ opacity: 1 }, 1

在尝试为每次运行
if
语句切换
turn
变量时,我总是得到相同的结果。每次,
turn
计算为
2

代码如下:

$(function() {
  var turn = 2;

  if (turn == 1) {
    $(".box").on("click", function() {
      var $thisBox = $(this).children();
      $thisBox.addClass("x").animate({
        opacity: 1
      }, 1000);
    });
    turn = 2;
  } else if (turn == 2) {
    $(".box").on("click", function() {
      var $thisBox = $(this).children();
      $thisBox.addClass("o").animate({
        opacity: 1
      }, 1000);
    });
    turn = 1;
  } else {
    document.write("Uh Oh");
  }
});

为什么会发生这种情况?

您只需设置一次
onClick
侦听器,并检查
onClick
事件调用的函数中
turn

$(函数(){
var-turn=2;
$(“.box”)。在(“单击”,函数(){
如果(圈数===1){
console.log('foo');
匝数=2;
}否则如果(回合===2){
console.log('bar');
圈数=1;
}否则{
console.log(“Uh-Oh”);
}
});
});


单击我
它仍然会给我相同的结果代码处于文档就绪事件中,它只会运行一次。OP在页面重新加载之间似乎需要持久数据。