2012-11-12 10 views
5

Powiel możliwe:
How to find event listeners on a DOM node?JavaScript: jak uzyskać listę programów obsługi zdarzeń związanych ze zdarzeniem

Biorąc pod uwagę element, powiedzmy div, jest to możliwe do uzyskania lista procedur obsługi związanych z określonym zdarzeniem uruchamianym przez element?

/* pseudo code: click on a div handlers? */ 
document.getElementById('myDiv').getHandlers('click'); 

Edit

Ok, oto kilka szczegółów. Chcę powiązać moduł obsługi kliknięć z elementem div, chyba że inny moduł obsługi jest już powiązany z elementem div. Co mam na myśli, to:

/* pseudo code: click on a div handlers? */ 
if(!document.getElementById('myDiv').getHandlers('click')) 
    document.getElementById('myDiv').addEventListener('click', myEventhandler); 
+0

Dlatego kiedy wiążę się z obsługą, nadaję im unikalne nazwy. Możesz nawet zapisać nazwę w atrybucie danych na elemencie. –

+0

@Bergi: Przeczytałem już sugerowane duplikaty. Ale w żadnym wypadku nie znalazłem programowego sposobu na uzyskanie listy handlerów. Sugerowana odpowiedź dotyczy debugowania lub korzystania z jQuery. –

+0

@ADC: Tak, ponieważ nie ma. – Bergi

Odpowiedz

5

Nie, nie jest to możliwe w przypadku metod DOM.

Jednak niektóre biblioteki przechowują wszystkie procedury obsługi, które wiążą w strukturach danych powiązanych z elementami, aby włączyć metody takie jak unbindAll.

Powiązane problemy