运行jQuery单击函数ONCE

时间:2016-03-17 15:37:13

标签: javascript jquery

我无法让此点击功能在每次turnRound()调用中运行一次。所以我将它放在一个if语句中,由于humanMoved变量为true,因此在执行一次之后应该会被破坏。但是单击带有“square”类的元素仍会调用click函数。 turnRound()也只被调用一次。我认为这可能是humanMoved的变量范围问题,或者我只是不理解.click()

function turnRound(c){
    humanMoved = false;
    if (c == "X" && humanMoved == false) {
        $(".square").click(function(){
            $(this).text(c);
            humanMoved = true;
        });
    }

1 个答案:

答案 0 :(得分:2)

而不是以下代码:

$(".square").click(function(){
  $(this).text(c);
  humanMoved = true;
});

将其替换为.one()

$(".square").one("click", function(){
  $(this).text(c);
  humanMoved = true;
});

或者,您可以使用.off()删除click事件:

$(".square").click(function(){
  $(this).text(c);
  humanMoved = true;
  $(this).off("click");
});