Wie löschen / entfernen JavaScript Event-Handler?
-
03-07-2019 - |
Frage
In Anbetracht der folgenden HTML-Fragment:
<form id="aspnetForm" onsubmit="alert('On Submit Run!'); return true;">
Ich brauche / zu entfernen, um die Handler für das onsubmit Ereignis löschen und meine eigenen registrieren jQuery oder anderen Geschmack von JavaScript Nutzung verwenden.
Lösung
Um dies zu tun, ohne Bibliotheken:
document.getElementById("aspnetForm").onsubmit = null;
Andere Tipps
Mit jQuery
$('#aspnetForm').unbind('submit');
Und dann gehen Sie Ihren eigenen hinzuzufügen.
Versuchen Sie dieses, das funktioniert für mich:
$('#aspnetForm').removeAttr('onsubmit').submit(function() {
alert("My new submit function justexecuted!");
});
Siehe dieses mehr Details.
Für jQuery, wenn Sie Ereignishandler mit .live verbindlich sind, können Sie .die verwenden, um alle Instanzen zu lösen, die mit .live gebunden waren.
Für jQuery, off()
entfernt alle Event-Handler hinzugefügt von jQuery davon.
$('#aspnetForm').off();
Beim .off () ohne Argumente werden alle Handler auf die Elemente angebracht.
Wenn Sie möchten, entfernen Sie alle event-handlers
auf der element and its child-nodes
und behalten nur die HTML structure
, können wir mit jQuery's
arbeiten clone () :
var original, clone;
//
original = $('#my-div');
clone = original.clone();
//
original.replaceWith(clone);
Dies wird effektiv lassen keinen event-handlers
auf dem element
oder seine child-nodes
.
Viel Glück ...