Anonim

Har du någonsin haft någon slags konflikt om en händelse lyssnar? Eller vill bara se vad mer som körs på samma åtgärd på sidan. Beroende på din webbläsare kan det hända att det inte är en inbyggd funktionalitet.

Inbyggd i webbläsaren

Högerklicka på sidan i Google Chrome, gå till Inspect Element. Därifrån, se till att du är på fliken Element och klicka på ett block med HTML. På den högra sidofältet ser du ett avsnitt med flikar där du kan klicka på Event Listers och se vilka handlingar dokumentet lyssnar på. Du kan gå längre ned på var och en av dessa åtgärder för att se var den ursprungliga deklarationen inträffar.
I Internet Explorer tror jag att de har inbyggd liknande funktionalitet. I FireFox tror jag att det krävs ett FireBug-tillägg för att se den funktionen i webbläsaren.

getEventListeners

Detta är en metod som bakas direkt i Chrome och Firebug för Firefox. Syntax: getEventListeners (objekt). Så i samband med jQuery skulle ett enkelt exempel vara:

getEventListeners ($ (# container "));

Gå bara direkt till utvecklarkonsolen och skriv det kommandot för vilket element du vill se lyssnarna på.
getEventListeners Chrome
getEventListeners Firebug

jQuery

Det finns inget fullt stöd för att få denna information längre fram i jQuery. Du kan komma åt en privat metod i jquery via:

$ ._ data ($ ( ''), 'händelser');

Byt ut med lämplig elementreferens. Detta stöds inte offentligt, det finns ingen dokumentation, och det kan sluta fungera med någon ny version av jQuery, så lita inte på det. Om du ska använda den, använd den bara för felsökning.

bookmarklet

Om ingen av ovanstående passar dig finns det en ganska cool bokmärke som låter dig se på sidan var lyssnarna finns. Om du går hit tillhandahåller de bokmärken för att dra till din webbläsares fält. Detta är ärligt det sätt som jag använder oftast eftersom jag kan se exakt var lyssnaren finns på sidan.

Visa alla evenemangets lyssnare