So verwenden Sie getEventListeners in Chrome Dev Tool?

8

Ich habe versucht, zurückzuverfolgen, welche Funktion in ein click -Ereignis von .someclass eingebunden ist. Ich öffne Chrome Dev Tool und tippe dieses

getEventListeners(document.querySelector('.someclass'));

Das Ergebnis ist das

Object {}

Ich kann nicht darauf klicken und es öffnen, um den Namen des Objekts oder des Quellcodes herauszufinden, der das click-Ereignis behandelt.

Gibt es einen Weg, das herauszufinden?

UPDATE 1:

Folgte Krasimirs unten. Es könnte nur zwei Ereignisse geben: mousemove oder mouseover . Also, wie finde ich die genaue Funktion, die dieses Ereignis für canvas.overlay behandelt? Es gibt einfach zu viele, auf die man zurückgreifen kann.

    
HP. 31.08.2013, 03:50
quelle

3 Antworten

9
  1. Öffne die DevTools
  2. Öffnen Sie die Registerkarte Elemente und suchen Sie Ihr Element (.someclass)
  3. Es gibt vier Registerkarten pro Element - Stile, Eigenschaften, DOM-Haltepunkte und Ereignislistener
  4. Wählen Sie Ereignislistener
  5. aus

    
Krasimir 31.08.2013 12:00
quelle
7

Sie erhalten beim Aufruf von

ein leeres Objekt %Vor%

wahrscheinlich, weil der Listener nicht mit .someclass element selbst (direktes Ereignis) verbunden ist, sondern mit einem seiner Vorfahren (delegiertes Ereignis). Es gibt eine gute Erklärung für dieses hier .

Sie können sowohl delegierte als auch direkte Ereignisse auflisten, indem Sie getEventListeners für den angegebenen Knoten und all seine Vorfahren aufrufen. Diese Funktion sollte den Trick machen:

%Vor%

Dies wird jedoch genauso ausgegeben wie die Registerkarte "Event Listeners" (mit der Option "Filter" auf "Alle Knoten"), die Krasimir in seiner Antwort erwähnt hat.

    
Konrad Dzwinel 03.09.2013 12:38
quelle
0

Ich nehme an, dass Sie jQuery verwenden, um die Ereignisse an dieses Element zu binden. Aus diesem Grund können Sie den tatsächlichen Handler-Code nicht im Drill-Down-Menü sehen. Ohne von jQuery umschlossen zu sein, sollte der eigentliche Code in "listenerBody" wie folgt angezeigt werden:

    
Sean Chen 30.05.2014 03:18
quelle