1.添加与删除:
①addEventListener()
:添加事件处理器
②removeEventListener:删除事件处理器
例如,删除 changeBackground()
事件处理器:
btn.removeEventListener("click", changeBackground);
2. 添加删除事件处理器:
事件处理器可以通过传递 AbortSignal到 addEventListener(),然后在拥有 AbortSignal
的控制器上调用abort(),从而删除事件处理器。
例如,要添加一个可以使用 AbortSignal
来删除的事件处理器,可以这样做:
const controller = new AbortController();
btn.addEventListener("click",() => {
const rndCol = `rgb(${random(255)}, ${random(255)}, ${random(255)})`;
document.body.style.backgroundColor = rndCol;
},
{ signal: controller.signal } // 向该处理器传递 AbortSignal
);
删除上面创建的事件处理器:
controller.abort(); // 移除任何/所有与该控制器相关的事件处理器
对于大的、复杂的程序,删除事件处理器可以提高效率。另外,删除事件处理器的能力允许你让同一个按钮在不同的情况下执行不同的动作:你所要做的就是添加或删除处理程序。