function attachEvent(element, event, callbackFunction) {
if(element.addEventListener) {
element.addEventListener(event, function(){
removeArray();
callbackFunction(this.getAttribute("src"));
}, false);
}
}
function removeEvent(){
var element = document.querySelectorAll('.Dicon');
element.removeEventListener("click", handler);
console.log("remove");
}
我有一些类称为Dicon的图像,我使用addEventlistner让他们能够点击,但现在我想删除eventlistner,但不知何故我无法让它工作,我出现错误。
错误
Uncaught TypeError: element.removeEventListener is not a function
我该如何解决这个问题?它们都是图像。
最佳答案
querySelectorAll
返回一个集合,而不是单个元素。如果您只想获取第一个匹配元素,请使用querySelector
(不要使用All
)。否则,您可以使用 length
对集合进行索引(例如,对第一个匹配元素使用 [0]
,对第二个匹配元素使用 [1]
)知道有多少人。
您还需要定义处理程序
。
请注意,您无法删除在第一个代码块中使用 addEventListener
附加的处理程序,因为要删除处理程序,您必须提供 <强>相同对removeEventListener
的函数引用与您给addEventListener
的函数引用相同,但您不这样做拥有该引用,因为您直接将函数表达式传递到 addEventListener
中。
您需要将该引用保留在某处(例如变量或属性),以便稍后使用它来删除处理程序。
关于javascript - 无法使用删除事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36644361/