Łączę dwa moduły obsługi zdarzeń za pomocą tego łącza:
<a href='#' id='elm'>Show Alert</a>
JavaScript:
$(function()
{
$('#elm').click(_f);
$('#elm').mouseover(_m);
});
function _f(){alert('clicked');}
function _m(){alert('mouse over');}
Czy jest jakiś sposób na uzyskanie listy wszystkich zdarzeń powiązanych z elementem, w tym przypadku z elementem id="elm"
?
javascript
jquery
javascript-events
Praveen Prasad
źródło
źródło
$._data(element[0], ‘events’);
$._data()
jest używany przez JQuery wewnętrzny.$.data()
jest publiczną metodą dla użytkownika. I$.data(element, 'events')
działa dobrze.Ogólna sprawa:
Sources
zakładkęEvent Listener Breakpoints
i rozwiń drzewoPodobnie możesz:
Inspect element
”event listeners
”.źródło
Dodaję to dla potomności; Jest prostszy sposób, który nie wymaga pisania więcej JS. Używając niesamowitego dodatku Firebug dla Firefoxa ,
źródło
Teraz możesz po prostu uzyskać listę detektorów zdarzeń powiązanych z obiektem za pomocą funkcji javascript getEventListeners ().
Na przykład wpisz następujące polecenie w konsoli narzędzi programistycznych:
źródło
JQuery Audytu plugin Wtyczka powinna pozwolić to zrobić poprzez normalne Chrome Dev Tools. Nie jest doskonały, ale powinien pozwalać zobaczyć rzeczywisty moduł obsługi związany z elementem / zdarzeniem, a nie tylko ogólny moduł obsługi jQuery.
źródło
Chociaż nie jest to specyficzne dla selektorów / obiektów jQuery, w FireFox Quantum 58.x można znaleźć procedury obsługi zdarzeń na elemencie za pomocą narzędzi programistycznych:
źródło
Użyłem czegoś takiego, jeśli ($ ._ data ($ ("a.wine-item-link") [0]). Events == null) {... zrób coś, prawie ponownie powiązaj ich procedury obsługi zdarzeń}, aby sprawdzić jeśli mój element jest powiązany z jakimkolwiek zdarzeniem. Nadal powie, niezdefiniowane (null), jeśli odłączyłeś wszystkie procedury obsługi zdarzeń od tego elementu. To jest powód, dla którego oceniam to w wyrażeniu if.
źródło
Pamiętaj, że zdarzenia mogą być dołączane do samego dokumentu, a nie do danego elementu. W takim przypadku będziesz chciał użyć:
I znajdź wydarzenie za pomocą odpowiedniego selektora :
A potem spójrz na moduł obsługi > [[FunctionLocation]]
źródło
Gdy przekazuję trochę skomplikowane zapytanie DOM do danych $ ._ w ten sposób:
$._data($('#outerWrap .innerWrap ul li:last a'), 'events')
rzuca niezdefiniowane w konsoli przeglądarki.Musiałem więc użyć danych $ ._ na nadrzędnym div:
$._data($('#outerWrap')[0], 'events')
aby zobaczyć zdarzenia dla tagów a. Oto JSFiddle dla tego samego: http://jsfiddle.net/giri_jeedigunta/MLcpT/4/źródło
$('#outerWrap')
. Zdarzenia są faktycznie związane z tym elementem, a nie z poszczególnymi kotwicami.