首页 > 解决方案 > 为什么使用 removeEventListener 而不是只删除它?

问题描述

我正在学习 JavaScript 以及与 DOM 交互的方法。

我到了事件监听器,发现有一个removeEventListener()方法。

我知道如何使用它,但很好奇为什么我们不只是删除带有我们不想要的事件侦听器的代码行?是否有理由说明为什么使用 remove 方法比仅删除我们自己更好?

对此的任何澄清都会有所帮助:)

谢谢

标签: javascriptdomevent-listener

解决方案


您可能希望将侦听器添加到元素,然后再删除侦听器。您不想完全删除侦听器代码,因为这样侦听器将不会在您希望的时间间隔内触发。

const button = document.querySelector('button');
button.addEventListener('click', () => {
  const listener = () => console.log('hovered');
  button.addEventListener('mouseover', listener);
  setTimeout(() => {
    console.log('listener removed');
    button.removeEventListener('mouseover', listener);
  }, 2000);
});
<button>click to enable hover listener</button>

要实现上述逻辑,addEventListener需要-您不能只删除该部分。但是您还想稍后删除侦听器,因此removeEventListener也需要。


推荐阅读