Wie zu verwenden getEventListeners in Chrome Dev Tool?
Ich habe versucht zurückzuverfolgen, welche Funktion eingehängt in ein click-Ereignis des .someclass
. Ich öffne Chrome Dev Tool und geben Sie diese
getEventListeners(document.querySelector('.someclass'));
Das Ergebnis ist dieses
Object {}
Kann ich nicht klicken und es öffnen, um herauszufinden, den Namen des Objekts oder den source-code, der Griff click-Ereignis.
Gibt es eine Möglichkeit heraus zu finden?
UPDATE 1:
Gefolgt Krasimir ist beraten Sie unten. Konnte es nur zwei Ereignisse: mousemove
oder mouseover
. Also, wie finde ich die genaue Funktion, die Handhabung, die Veranstaltung für canvas.overlay
? Es gibt einfach zu viele, um einen Drilldown in.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie immer ein leeres Objekt beim Aufruf
wahrscheinlich weil der Hörer ist nicht angeschlossen an
.someclass
element selbst (direct-Ereignis), aber auf seine Vorfahren (Delegierte Ereignis). Es gibt eine gute Erklärung dieser hier.Liste können Sie sowohl delegiert und direkte Ereignisse durch den Aufruf
getEventListeners
für den angegebenen Knoten und alle seine Vorfahren. Diese Funktion sollte den trick tun:Jedoch wird diese Ausgabe genau die gleiche Sache wie die "Ereignis-Listener" tab (mit "Filter" - option auf "Alle Knoten"), dass Krasimir erwähnt in seiner Antwort.
click
event-handler hast, dann hast du nur eine auf der Liste. Wenn Sie sind auf der Suche nachmousemove
Veranstaltung übercanvas.overlay
dann gibt es nur ein entweder.mousemove
wieprototype: Object
oder__proto__: function Empty()
oder<function scope>
ich bin also nicht sicher sind, welches die listener-Funktion.hasOwnProperty
, der nicht eine Funktion inlisteners
. Sollte ichevent.hasOwnProperty()
? So ist es nicht fail aberallListeners
endet als ein leeres Objekt, als dass die Funktionen immer zurückfalse
.hasOwnProperty
überprüfen (habe ich aktualisiert, der code). Für einige Grund, in Chrome wurde diese Methode entfernt vom Objekt zurückgegebengetEventListeners
.var el = document.querySelector('.someclass'); while (el) { console.log(el, getEventListeners(el)); el = el.parentNode; }
Ich denke, Sie sind mit jQuery zu binden, Veranstaltungen zu diesem element.
Das ist, warum Sie nicht sehen können, die tatsächliche hf-code in der drill-down-Menü.
Ohne eingebundenes jQuery, ist der aktuelle code angezeigt werden soll, in "listenerBody" wie folgt: