Sé cómo eliminar un detector de un elemento, pero ¿cómo puedo eliminar todos los detectores de eventos de cada elemento de la página?
Una solución jQuery y JS pura sería buena.
Sugeriría buscar en la función .off de jQuery. Además, según esta pregunta de stackoverflow , intentaría eliminar a todos los oyentes con el siguiente código
$("body").find("*").off();Espero que esto pueda ayudarte.
Puedes probar esto también.
http://jsfiddle.net/LkfLezgd/9/
$("#cloneButton").click(function() { $('body').replaceWith($('body').clone().html()); });Puede recorrer los elementos del formulario como se muestra a continuación para eliminar los detectores de eventos de la forma que prefiera.
La forma más rápida de hacer esto es simplemente clonar el nodo, lo que eliminará todos los detectores de eventos, pero no se eliminará si se usa el atributo 'onclick'.
document.getElementById('button').addEventListener('click', onClick, false); function onClick() { console.log('Form clicked'); var form = document.getElementById('myForm'); for(var i = 0; i < form.elements.length; i++){ var elm = form.elements[i]; removeEvents(elm); } } function removeEvents(elm) { // The fastest way to do this is to just clone the node, which will remove all event listeners: var new_element = elm.cloneNode(true); elm.parentNode.replaceChild(new_element, elm); } <form id="myForm"> <input id="button" type="button" value="Click" /> </form>