我想覆盖click事件的事件处理程序。这是我最初附加的事件处理程序。
document.querySelector("[data-id='start-btn']")
.addEventListener("click", function (evt) {
//some code
});
Run Code Online (Sandbox Code Playgroud)
同样,在某些情况下,我想重写此处理程序,并为“ click”事件附加新的处理程序。
//removing
document.querySelector("[data-id='start-btn']")
.removeEventListener("click", function (evt) {
//some code
}, false);
//attaching new
document.querySelector("[data-id='start-btn']")
.addEventListener("click", function (evt) {
//code
});
Run Code Online (Sandbox Code Playgroud)
但是它仍然在执行先前的事件处理程序。我使用过removeEventListener(但是我想它不起作用)。
指导我哪里出问题了。
删除添加了处理程序的唯一方法addEventListener
是使用removeEventListener
完全相同的参数。这意味着您需要引用原始功能:
var handler = function (evt) {
//some code
};
document.querySelector("[data-id='start-btn']").addEventListener("click", handler);
Run Code Online (Sandbox Code Playgroud)
然后删除
document.querySelector("[data-id='start-btn']").removeEventListener("click", handler);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2612 次 |
最近记录: |