通常这个问题出现在我们给同一个元素多次绑定同一个事件处理函数的时候,解决办法是在绑定事件之前,先移除掉这个元素上已经绑定的事件处理函数。代码示例如下:
var element = document.getElementById("myButton");
// 先移除事件处理函数
element.removeEventListener("click", myFunction);
// 绑定事件处理函数
element.addEventListener("click", myFunction);
需要注意的是,为了能够正确地移除事件处理函数,需要在移除之前指定的事件类型、回调函数以及是否在捕获阶段触发事件,都要与绑定的时候保持一致。