2010-11-18 3 views

Antwort

7

Es ist wahrscheinlich erwähnenswert, dass Firebug 1.12 eingeführt getEventListeners(target). Die Firebug Wiki-Seite dafür ist here, und es gibt einen sehr nützlichen Blogeintrag darüber here.

(Firebug 1.12 wurde erst im August 2013 veröffentlicht, so die Antwort auf diese Frage hatte recht, als es ursprünglich geschrieben wurde.)

Es gibt jedoch ein paar Einschränkungen für getEventListeners:

First off Es funktioniert nicht, wenn Sie ein jQuery-Objekt übergeben. Übergeben Sie stattdessen ein normales DOM-Objekt. (Vielleicht ist das offensichtlich, aber es hat mich erwischt!)

Zweitens habe ich festgestellt, dass getEventListeners nicht immer funktioniert, wenn ich es ausführen, bevor der gesamte Code auf einer Seite geladen hat. Ich bin nicht sicher genau, wenn es funktioniert und nicht funktioniert, aber ich habe sicherlich eine Situation wie diese gesehen:

>>> getEventListeners(document.getElementById('elementid')) 
ReferenceError: getEventListeners is not defined 
>>> $._data(document.getElementById('elementid'), "events"); 
Object { click=[1]} 

Wie Sie sehen können, den „Langschrift“ -Methode (von der SO Post verbunden in der Antwort) kann das Ereignis abrufen, aber getEventListeners wird als nicht definiert angezeigt. Dieser Fehler unterscheidet sich von dem Rückgabewert, den Sie erhalten, wenn getEventListeners ausgeführt wird, aber meldet, dass ein Objekt keine Listener hat, also würde ich sagen, dass Sie getEventListeners ohne Angst verwenden können, da es offensichtlich ist, wenn es noch nicht verfügbar ist!

1

Denken Sie nicht, dass Firebug eine gute Funktionalität dafür hat. Vielleicht möchten Sie here suchen.

12

Wenn Sie jQuery verwenden, dann installieren Sie FireQuery, es zeigt alle gebundenen Ereignisse im HTML-DOM-Panel pro Element an. Sehr nützliche Ergänzung.

+0

Darüber hinaus zeigt es alle Daten, die Sie speichern, und bietet eine Schaltfläche "jqueryify" auf der Konsole für die Injektion der aktuellen Version von jQuery auf der Seite, die Sie anzeigen, was sehr nützlich ist. – Orbling

+1

Danke dafür. FireQuery ist ein hervorragendes Tool und lohnt sich für jeden Webentwickler, der jQuery mit Firebug verwendet. – crmpicco

+1

Es sieht so aus, als ob es irgendwann nicht mehr funktioniert ... Ich benutze die neueste Version von jQuery und konnte mit dieser Erweiterung nichts sehen. –

Verwandte Themen