js事件移除

1.AbortController()
addEventListener()时,可以配置一个信号,用于命令式地中止/删除监听器。当相应的控制器调用 .abort() 时,监听器会被移除:

const button = document.getElementById('button');
const controller new AbortController();
const { signal } = controller;
button.addEventListener('click', () => console.log('clicked!'), { signal });
// Remove the listener!
controller.abort();
一系列监听器希望命令式地一次性删除
使用一个信号一次性删除多个监听器,使用匿名函数也可以:
const button = document.getElementById('button');
const controller new AbortController();
const { signal } = controller;
button.addEventListener('click', () => console.log('clicked!'), { signal });
window.addEventListener('resize', () => console.log('resized!'), { signal });
document.addEventListener('keyup', () => console.log('pressed!'), { signal });
// Remove all listeners at once:
controller.abort();
2.removeEventListener()
如果回调函数分配给变量,并且在添加监听器的地方容易访问,请使用
3. addEventListener() 中使用 once 选项
如果只需要触发一次回调的情况
4.克隆替换方法
需要在一次操作中无差别地删除所有的监听器,请使用克隆替换方法
posted @ 2023-08-29 19:27  卷叶小树  阅读(557)  评论(0编辑  收藏  举报