我将事件存储在这样的变量中:
var lastEvent;
document.getElementById("button-1").addEventListener("click", function(){
// Stores the event to the variable lastEvent
lastEvent = arguments[0];
});
我现在想通过引用 lastEvent 删除事件侦听器。
document.getElementById("button-2").addEventListener("click", function(){
// This doesn't work, obviously
lastEvent.removeEventListener();
});
有可能吗?
答案 0 :(得分:2)
要删除事件处理程序,您需要:
因此,您将需要...
let lastEvent;
const trackingHandler = (event) => {
lastEvent = event
};
const removingHandler = (event) => {
const element = lastEvent.target;
element.removeEventListener(trackingHandler);
};
document.getElementById("button-1").addEventListener("click", trackingHandler);
document.getElementById("button-2").addEventListener("click", removingHandler);
…,并且您可能需要额外的逻辑来区分多个 trackingHandler 函数(如果存在多个函数)。