31

Podczas inspekcji strona jest DOM, chciałbym wiedzieć załączony zdarzenia (y) elementu szybkozałączeniu/jest wiązana wydarzenia elementu za pomocą Narzędzi Chrome Rozwój/Firebug/IE Developer Toolbar

Na przykład, jeśli przycisk ma ten kod HTML DOM

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

I gdzieś (nie w miejscu, które znam z góry) ma dołączone wydarzenie, np.

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

wiem, można to zrobić programowo (Can I find events bound on an element with jQuery?)

ale czy jest jakiś sposób za pomocą tylko jednego z narzędzi programistycznych dla Chrome/Firefox/IE, aby zobaczyć listę wydarzeń?


Aktualizacja: okazało się, że w nowszych wersjach Chrome Mam kartę o nazwie eventListeners ale wydaje się, że nie pozwalają na łatwe drążenie całą drogę w dół do źródła zdarzenia, jak jQuery zawijany oryginalny

+0

Możesz rzucić okiem na [EventBug] (http://getfirebug.com/wiki/index.php/Firebug_Extensions#Eventbug) Rozszerzenie Firebug. Jednak nie wiem jak to się integruje z jQuery. Ogólnie rzecz biorąc, wsparcie dla programów nasłuchujących zdarzeń jest niestety dobre we wszystkich narzędziach programistycznych. –

Odpowiedz

2

FireQuery - http://firequery.binaryage.com/ pozwala zobaczyć wydarzenia związane z elementami i wiercić w nich

+4

Jeśli jest coś takiego dla chrome (EventListeners, które drąży do źródła zdarzenia), prosimy o komentarz! –

+0

ta odpowiedź musi zostać odznaczona, a nie dla chrome. –

18

z inspektorem Chrome wybrać element w zakładce „Elements”, a następnie z zakładki „Console” można patrz th zdarzenia związane z elementem z getEventListeners($0);.

+1

getEventListeners wyświetla tylko zdarzenia związane z samym elementem, nie uwzględnia wszystkich zdarzeń agenta przez jego rodziców. – diyism

+0

+1 za używanie $ 0 – ipd

+0

@ipd Co to jest 0 USD? – Shanimal

23

W Chrome jest teraz zakładka Event Listeners. Event Listeners tab

+0

Należy zauważyć, że w tej zakładce można filtrować według "Wszystkie węzły" lub "Tylko wybrany węzeł". – chipit24

+0

bezużyteczne, ponieważ wszystko wskazuje na jquery. Używając 'firefox developer edition', możesz znaleźć właściwy handler, który w moim przypadku jest widokiem Backbone. –

29

zdobyć pierwszy dołączony uchwyt na pierwszym $ ("# button1") elementem

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

JSFiddle

Długa historia, że ​​nikt nie chce usłyszeć: Przyszedłem tutaj, szukając wtyczki. Byłem zachwycony, gdy zobaczyłem odpowiedź @ schmidlop, ale w jQuery, która tak naprawdę nie daje mi poszukiwanego przeze mnie słuchacza, pokazuje jedynie ogólny program obsługi zdarzeń jQuery, który ostatecznie wywołuje określone wywołanie zwrotne. Nadal szukam wtyczki do przeglądarki Chrome, która pozwoliłaby mi kliknąć prawym przyciskiem myszy na elemencie i pozwolić mi wiercić w uchwytach dołączonych do obiektu.

Przyczyna, że ​​będzie cool.

UPDATE: Znalazłem rozszerzenie Chrome o nazwie jQuery Debugger. Po prostu „Zbadaj element” i wybrać „jQuery zdarzeń” z podmenu „Elements” ...https://chrome.google.com/webstore/detail/jquery-debugger/dbhhnnnpaeobfddmlalhnehgclcmjimienter image description here

+1

'$ ._ data ($ (" # button1 "). Get (0)," events ") .Kliknij [0] .handler' działa świetnie! –

+1

To niesamowite ... bardzo idealne, ponieważ nie potrzebuję żadnego narzędzia. Jeśli może to zrobić karta odbiorców zdarzeń Chrome, będzie to niesamowite! –

3

Narzędzia dla programistów Firefoksa teraz wyświetlać „ev” obok elementów, które zmierzały wydarzenia. Może to służyć do sprawdzania powiązanych zdarzeń (w tym zdarzeń jQuery).

Oto przykład z inspekcji „pierwszy akapit” element z jQuery click documentation:

Bound events in Firefox developer tools

0

Można również sprawdzić wizualne dodatek dostępnych wydarzeń dla Chrome.