¿Cómo borrar / eliminar el controlador de eventos de JavaScript?
-
03-07-2019 - |
Pregunta
Dado el siguiente fragmento HTML:
<form id="aspnetForm" onsubmit="alert('On Submit Run!'); return true;">
Necesito eliminar / borrar el controlador para el evento de envío y registrar el mío usando jQuery o cualquier otro tipo de uso de JavaScript.
Solución
Para hacer esto sin ninguna biblioteca:
document.getElementById("aspnetForm").onsubmit = null;
Otros consejos
Con jQuery
$('#aspnetForm').unbind('submit');
Y luego proceda a agregar el suyo.
Prueba esto, esto funciona para mí:
$('#aspnetForm').removeAttr('onsubmit').submit(function() {
alert("My new submit function justexecuted!");
});
Ver esto para más detalles.
Para jQuery, si está vinculando controladores de eventos con .live, puede usar .die para desvincular todas las instancias que estaban vinculadas con .live.
Para jQuery, off ()
elimina todos los eventos controladores añadidos por jQuery a partir de él.
$('#aspnetForm').off();
Llamar a .off () sin argumentos elimina todos los controladores adjuntos a los elementos.
Si desea eliminar TODOS controladores de eventos
en el elemento y sus nodos secundarios
y conservar solo la estructura HTML
, podemos trabajar con el jQuery's
clon () :
var original, clone;
//
original = $('#my-div');
clone = original.clone();
//
original.replaceWith(clone);
Esto efectivamente no dejará manejadores de eventos
en el elemento
o sus nodos secundarios
.
Buena suerte ...