Frage Wie überprüft man, ob irgendwelche JavaScript Event Listener / Handler an ein Element / Dokument angehängt sind? [Duplikat]


Diese Frage hat hier bereits eine Antwort:

Versucht, online zu suchen, sieht aber nicht so aus, als könnte ich die Suchanfrage richtig formulieren.

So einfach wie es klingt, wie kann ich entweder mit jquery oder nur javascript alle Handler oder Event-Listener auflisten, die an element (s) / document / window oder dom angehängt sind.

Ich frage mich nur.

Vielen Dank im Voraus.


76
2018-03-04 21:54


Ursprung


Antworten:


Versuchen Sie in jQuery vor 1.8 mit $("#element").data("events")

BEARBEITEN:

Es gibt auch eine jQuery-Erweiterung: listHandlers


47
2018-03-04 21:57



Wenn Sie beim Debuggen nur sehen möchten, ob ein Ereignis vorliegt, empfehle ich die Verwendung Visuelles Ereignis oder der Elemente "in den Chrome-Entwicklertools: Wählen Sie ein Element aus und suchen Sie nach" Event Listeners " rechts unten.

Wenn Sie jQuery vor Version 1.8 verwenden, können Sie in Ihrem Code Folgendes verwenden:

$(selector).data("events")

um die Ereignisse zu bekommen. Ab Version 1.8 wird dies eingestellt (vgl dieses Fehlerticket). Sie können verwenden:

$._data(element, "events")

Dies wird jedoch nicht empfohlen, da es sich um eine interne jQuery-Struktur handelt, die in zukünftigen Versionen geändert werden könnte.

Diese Frage hat einige Antworten, die nützlich sein können, aber keiner von ihnen ist in der gleichen Weise besonders elegant $(selector).data("events") war.


32
2017-10-22 18:28



Ohne jQuery:

Wenn die Listener mit der Methode elem.addEventListener () hinzugefügt wurden, ist es nicht einfach, diese Listener aufzulisten. Sie können die EventTarget.addEventListener () -Methode überschreiben, indem Sie sie in Ihre eigene umbrechen. Dann haben Sie die Information, welche Zuhörer registriert wurden.

var f = EventTarget.prototype.addEventListener; // store original
EventTarget.prototype.addEventListener = function(type, fn, capture) {
  this.f = f;
  this.f(type, fn, capture); // call original method
  alert('Added Event Listener: on' + type);
}

Arbeitsbeispiel finden Sie unter http://jsfiddle.net/tomas1000r/RDW7F/


16
2018-01-23 20:26



Ich habe gerade das visuelle Ereignis 2 entdeckt:

http://www.sprymedia.co.uk/article/Visual+Event+2

Geh unter den "make it go" -Bereich und ziehe den Textlink auf deine Lesezeichen-Toolbar Gehe zu einer Seite mit Ereignissen und klicke auf das Lesezeichen

getestet in FF Mac


3
2018-02-17 23:05