31

Ispezionando DOM di una pagina, vorrei conoscere l'evento in allegato (s) di un elemento rapidamenteallega/eventi legati di un elemento che utilizzano strumenti di Chrome di sviluppo/Firebug/IE Developer Toolbar

Per esempio, se un pulsante ha questo HTML DOM

<button id="button1">Click Me</button> 

E da qualche parte (non in un posto che conosco in anticipo) ha un evento associato, ad esempio,

$("#button1").click(function(){...}); 

so che può essere fatto programatically (Can I find events bound on an element with jQuery?)

, ma c'è un modo utilizzando solo uno degli strumenti di sviluppo per Chrome/Firefox/IE per visualizzare un elenco di eventi?


Aggiornamento: ho scoperto che nelle versioni più recenti di Chrome ho una scheda denominata EventListeners ma sembra che non consente facile drill-down tutta la strada fino alla sorgente della manifestazione, come jQuery avvolge l'originale

+0

Si può dare un'occhiata a [EventBug] (http://getfirebug.com/wiki/index.php/Firebug_Extensions#Eventbug) estensione Firebug. Tuttavia non so come si integri con jQuery. Ma in generale, il supporto per gli ascoltatori di eventi è tutt'altro che positivo in tutti gli strumenti di sviluppo, sfortunatamente. –

risposta

2

FireQuery - http://firequery.binaryage.com/ ti permette di vedere gli eventi legati agli elementi e drill in loro

+4

Se esiste una cosa del genere per chrome (EventListeners che esegue il drill down alla sorgente dell'evento), sentitevi liberi di commentare! –

+0

questa risposta deve essere deselezionata, non è per chrome. –

18

Con l'ispettore Chrome selezionare l'elemento nella scheda "elementi" e poi dalla scheda "Console" è possibile vedi th e eventi collegati all'elemento con getEventListeners($0);.

+1

getEventListeners elenca solo gli eventi associati all'elemento stesso, non include tutti gli eventi agente dai suoi genitori. – diyism

+0

+1 per l'utilizzo di $ 0 – ipd

+0

@ipd Che cos'è $ 0? – Shanimal

23

Ora c'è una scheda Listener di eventi in Chrome. Event Listeners tab

+0

Si noti che in questa scheda è possibile filtrare per "Tutti i nodi" o "Solo nodo selezionato". – chipit24

+0

inutile, dal momento che tutto punta a jquery. Usando 'firefox developer edition' puoi effettivamente trovare il gestore corretto che nel mio caso è una vista Backbone. –

29

per ottenere il primo gestore allegata al primo $ ("# button1") elemento

$._data($("#button1").get(0),"events").click[0].handler 

JSFiddle

La lunga storia che nessuno vuole sentire: Sono venuto qui alla ricerca di un plugin. Ero entusiasta di vedere la risposta di @schmidlop, ma in jQuery che in realtà non mi dà l'ascoltatore che sto cercando, mostra semplicemente il gestore generico per gli eventi jQuery che alla fine chiamano il callback specifico. Sto ancora cercando un plugin per Chrome che mi permetta di fare clic con il tasto destro su un elemento e permettermi di eseguire il drill sui gestori collegati all'oggetto.

Perché sarebbe bello.

UPDATE: ho trovato un'estensione Chrome chiamata jQuery Debugger. È sufficiente "Inspect Element" e scegliere "jQuery Eventi" dal sottomenu "Elementi" ...https://chrome.google.com/webstore/detail/jquery-debugger/dbhhnnnpaeobfddmlalhnehgclcmjimienter image description here

+1

'$ ._ dati ($ (" # button1 "). Get (0)," eventi "). Click [0] .handler' funziona alla grande! –

+1

È fantastico ... molto ideale poiché non ho bisogno di alcuno strumento. Se la scheda degli ascoltatori di eventi di Chrome può farlo, sarebbe fantastico! –

3

strumenti per gli sviluppatori di Firefox ora visualizzano un "EV" accanto agli elementi che sono legati eventi. Questo può essere usato per ispezionare gli eventi associati (inclusi gli eventi jQuery).

Ecco un esempio di ispezionare l'elemento "Primo paragrafo" dalla jQuery click documentation:

Bound events in Firefox developer tools

0

È inoltre possibile controllare a vista addon eventi disponibili per Chrome.

Problemi correlati