停止运行功能

时间:2019-08-12 22:37:02

标签: javascript

所有人:

我有以下代码:

let button = document.querySelector("#button");

function outer() {
  let counter = 0;
  return function() {
    counter ++;
    console.log(counter)
    if (counter === 5) {
      console.log("Five")
      return; 
    };
  }
}

let increase = outer();

button.addEventListener("click", increase); 

我想问用户是否要继续玩。如果答案为是,则计数器将设置为0,游戏将重新开始;否则,游戏将重新开始。但是,如果答案为否,该功能将停止。问题是当counter等于5时函数不返回。为什么?

1 个答案:

答案 0 :(得分:2)

counter变量的值达到5后,您必须删除点击侦听器。

let button = document.querySelector("#button");

function outer() {
  let counter = 0;
  return function() {
    counter++;
    console.log(counter)
    if (counter === 5) {
      console.log("Five")
      button.removeEventListener("click", increase); /** remove the listener **/
    };
  }
}

let increase = outer();

button.addEventListener("click", increase);
<button id="button">click me</button>

  

详细了解removeEventListener函数。