/ / Wie entferne ich alle Ereignisse eines Typs aus einem Element - Javascript, Ereignisse, Dom, Javascript-Ereignisse

Wie entferne ich alle Ereignisse eines Typs aus einem Element - javascript, events, dom, javascript-events

Ich möchte ALLE Klickereignisse aus einem bestimmten DOM-Element entfernen. Wie? Es gibt removeEventListener, dies erfordert jedoch die angefügte Funktion.

Gibt es eine Möglichkeit, ALLE angefügten Ereignisse eines Typs zu entfernen (oder einfach ALLE, das ist auch in Ordnung)?

Grazi

Antworten:

0 für die Antwort № 1

Sie haben nicht erwähnt, ob Sie eine Bibliothek zur Unterstützung der DOM-Manipulation verwendet haben, aber wenn Sie jQuery verwenden, ist es so einfach wie $ (domelement) .unbind ("click"); Hier dokumentiert: http://api.jquery.com/unbind/


3 für die Antwort № 2

Dieser Artikel wäre wahrscheinlich nützlich:

http://www.computerhowtoguy.com/how-to-use-the-jquery-unbind-method-on-all-child-elements/

Ein Teil ist insbesondere eine rekursive Funktiondas entfernt alle Klickereignisse. Denken Sie daran, dass jQuery Click-Events entfernt, WENN das Click-Event mit jQuery erstellt wurde. Die im Artikel angegebene Funktion entfernt sowohl die mit jQuery erstellten als auch diejenigen, die nicht erstellt wurden. Die gegebene Funktion ist diese:

function RecursiveUnbind($jElement) {
// remove this element"s and all of its children"s click events
$jElement.unbind();
$jElement.removeAttr("onclick");
$jElement.children().each(function () {
RecursiveUnbind($(this));
});
}

Sie würden die Funktion so aufrufen:

RecursiveUnbind($("#container"));

Für diese Funktion ist ein jQuery-Objektparameter erforderlich. Sie können ihn jedoch leicht ändern, um einen String als Namen der ID für das Element zu übergeben.


2 für die Antwort № 3

Leider gibt es in der DOM-Spezifikation keine Methode, die Ereignis-Listener auflisten oder entfernen kann, ohne die Listener-Funktion zu kennen.

Am besten erstellen Sie ein neues Element desselben Typs, kopieren alle Eigenschaften und verschieben die untergeordneten Elemente vom ursprünglichen Element in das neue Element.


0 für die Antwort № 4

Wenn Sie alle Ereignis-Listener entfernen möchten, wie würden Sie dem onclick-Ereignis eine leere Funktion zuweisen?

<YOUR_HTML_ELEMENT>.onclick=function(){};