Comment effacer / supprimer le gestionnaire d'événements JavaScript?
-
03-07-2019 - |
Question
Étant donné le fragment HTML suivant:
<form id="aspnetForm" onsubmit="alert('On Submit Run!'); return true;">
Je dois supprimer / effacer le gestionnaire de l'événement onsubmit et enregistrer le mien à l'aide de jQuery ou de tout autre type d'utilisation de JavaScript.
La solution
Pour ce faire sans aucune bibliothèque:
document.getElementById("aspnetForm").onsubmit = null;
Autres conseils
Avec jQuery
$('#aspnetForm').unbind('submit');
Et ajoutez ensuite le vôtre.
Essayez ceci, cela fonctionne pour moi:
$('#aspnetForm').removeAttr('onsubmit').submit(function() {
alert("My new submit function justexecuted!");
});
Voir this pour plus d'informations. détails.
Pour jQuery, si vous liez des gestionnaires d'événements à .live, vous pouvez utiliser .die pour dissocier toutes les instances liées à .live.
Pour jQuery, off ()
supprime tous les événements. les gestionnaires ajoutés par jQuery.
$('#aspnetForm').off();
L'appel de .off () sans argument supprime tous les gestionnaires attachés aux éléments.
Si vous souhaitez supprimer ALL des gestionnaires d'événement
sur l'élément et ses noeuds enfant
et conservation Seule la structure HTML
, nous pouvons utiliser le clone de jQuery () :
var original, clone;
//
original = $('#my-div');
clone = original.clone();
//
original.replaceWith(clone);
Ceci ne laissera effectivement aucun gestionnaires d'événement
sur l'élément
ou ses nœuds enfants
.
Bonne chance ...