How can I remove a click event from an element in Javascript?

一笑奈何 提交于 2019-12-18 21:19:24

问题


I have a <div> element that has a click event attached to it using the following code:

var id = "someId";
var elem = document.getElementById("elemId");
elem.addEventListener("click", function() { someFunction(id); }, false);

At a later point I copy the element and add it to another part of the DOM, but need to first remove the click event

var elem = document.getElementById("elemId");
elem.removeEventListener("click", ???? , false);

I'm not sure how to reference the listener and so far nothing I have tried has removed the event from the element.

Any ideas?

Cheers

Stewart


回答1:


Move the anonymous click handler function out of the addEventListener call:

var id = "someId";
var elem = document.getElementById("elemId");
var elemEventHandler = function() { someFunction(id); };
elem.addEventListener("click", elemEventHandler , false);

after which you should be able to:

var elem = document.getElementById("elemId");
elem.removeEventListener("click", elemEventHandler , false);


来源:https://stackoverflow.com/questions/6717960/how-can-i-remove-a-click-event-from-an-element-in-javascript

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!