javascript - 为什么使用 removeEventListener 而不是只删除它?
问题描述
我正在学习 JavaScript 以及与 DOM 交互的方法。
我到了事件监听器,发现有一个removeEventListener()
方法。
我知道如何使用它,但很好奇为什么我们不只是删除带有我们不想要的事件侦听器的代码行?是否有理由说明为什么使用 remove 方法比仅删除我们自己更好?
对此的任何澄清都会有所帮助:)
谢谢
解决方案
您可能希望将侦听器添加到元素,然后再删除侦听器。您不想完全删除侦听器代码,因为这样侦听器将不会在您希望的时间间隔内触发。
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
也需要。
推荐阅读
- html - 文字从卡片中出来并覆盖图像
- r - 循环我在 R 中的数据框列表上创建的函数
- svn - svn update 不替换已删除 --- 但未签入 --- 文件
- json - Json 到数据库而不覆盖数据库 sqlalchemy 中的先前数据
- python - 尽管使用了较早且已经工作的代码,但指针没有向上或向下移动
- python - 子类Python中的父类对象
- javascript - 最后一个元素被排除在外
- oauth - keycloak 适配器未能强制执行策略决策 NoHttpResponseException
- android - 在Android中更改系统字体大小后未定义的Frame topmost()
- go - 运行 go env GOPATH 时显示的内容与我在环境变量中设置的内容不同?