0

i want to remove all event listeners on a element, it's simply by jquery:

$("#myEl").off()

now for some reason i must disable the jQuery lib and use vanilla js.

just for replacing, i use

el = document.getElementById("myEl")
el.removeEventListener(eventType) //for all listeners
of the type
el.removeEventListener() //for all listeners

it seems not work, if there is a simple way to do this?

user4843115
  • 63
  • 1
  • 5
  • You cannot simply pass in the eventType you have to also pass in the original function reference used in addEventListener [removeEventListener reference](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener) – Patrick Evans Apr 28 '15 at 17:53

1 Answers1

0

To remove all eventListeners on an element, the best way is to clone the element. If you want to use removeEventListener() you have to provide the event type and function to remove.

Here's an example of how to clone an element to remove all of the event listeners:

var oldElement = document.getElementById("myEl");
var newElement = oldElement.cloneNode(true);
oldElement.parentNode.replaceChild(newElement, oldElement);
Howard Renollet
  • 4,609
  • 1
  • 24
  • 31