Ho allegato alcuni eventi ad alcuni div utilizzando addEventListener
. Ma dove posso vedere gli eventi in Firebug?Firebug: come visualizzare gli eventi collegati di un oggetto?
risposta
Vale la pena ricordare che Firebug 1.12 ha introdotto getEventListeners(target)
. La pagina wiki Firebug per questo è here, e c'è un post di blog molto utile su di esso here.
(Firebug 1.12 è stato rilasciato solo nel mese di agosto del 2013, quindi la risposta a questa domanda aveva ragione quando è stato originariamente pubblicato.)
Tuttavia, ci sono un paio di avvertimenti per getEventListeners
:
Prima di tutto , non funzionerà se si passa un oggetto jQuery; passare invece un normale oggetto DOM. (Forse questo è ovvio, ma mi ha sorpreso!)
In secondo luogo, ho trovato che getEventListeners
non funziona sempre se lo eseguo prima che tutto il codice su una pagina sia stato caricato. Io non so esattamente quando lo fa e non funziona, ma ho certamente visto una situazione come questa:
>>> getEventListeners(document.getElementById('elementid'))
ReferenceError: getEventListeners is not defined
>>> $._data(document.getElementById('elementid'), "events");
Object { click=[1]}
Come si può vedere, il metodo "longhand" (dal SO messaggio legato alla nella risposta) può recuperare l'evento, ma getEventListeners
viene visualizzato come non definito. Questo errore è diverso dal valore di ritorno che si ottiene se getEventListeners
viene eseguito ma segnala che un oggetto non ha ascoltatori, quindi direi che è possibile utilizzare getEventListeners
senza paura, poiché sarà ovvio se non è ancora disponibile!
Non pensare che Firebug abbia una buona funzionalità per questo. Potresti voler cercare here.
Se si utilizza jQuery, quindi installare FireQuery, mostra tutti gli eventi associati sul pannello DOM HTML per elemento. Aggiunta molto utile.
Inoltre mostra tutti i dati che si memorizzano e fornisce un pulsante "jqueryify" sulla console per l'iniezione della versione corrente di jQuery sulla pagina che si sta visualizzando, il che è molto utile. – Orbling
Grazie per questo. FireQuery è uno strumento eccellente e vale la pena per qualsiasi sviluppatore web che utilizza jQuery con Firebug. – crmpicco
Sembra che abbia smesso di funzionare a un certo punto ... Io uso la versione più recente di jQuery e non riuscivo a vedere nulla con quell'estensione. –