需要时禁用 addEventListener 函数

Disable an addEventListener function when needed

这个功能需要一段时间。但是当任务完成后我需要禁用它,在点击 'board' 之后它就不起作用了。

board.addEventListener('click', event => {
    if (event.target.classList.contains('circle')) {
        score++
        event.target.remove()
        createRandomCircle()
    } else if (!event.target.classList.contains('circle')) {
        fault++
    }
})

//Here I want to deactivate this event listener

我会调用一个处理函数 returns 一个新的命名函数 (a closure) 作为监听器。然后您可以完成您的任务,并在任务完成时删除侦听器。

const board = document.querySelector('#board');

board.addEventListener('click', handler(), false);

function handler() {

  // This is the function the listener uses
  return function listener(e) {
    console.log(e.target);
    console.log('Task one');
    console.log('Task two');
    board.removeEventListener('click', listener);
    console.log('The button no longer works.');
  }

}
<button id="board">Board</button>