2012-11-12 12 views
5

Eventuali duplicati:
How to find event listeners on a DOM node?Javascript: come ottenere un elenco dei gestori di eventi legati ad un evento

Dato un elemento, diciamo un div, è possibile ottenere un elenco dei gestori associati a un evento specifico generato dall'elemento?

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

Modifica

Ok, ecco qualche dettaglio in più. Voglio associare un gestore di clic a un div, a meno che un altro gestore non sia già associato al div. Quello che ho in mente è il seguente:

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

Questo è il motivo per cui quando lego gli handler, conferisco loro nomi univoci. È persino possibile memorizzare il nome in un attributo di dati sull'elemento. –

+0

@Berg: Ho già letto i duplicati suggeriti. Ma in nessun caso ho trovato un modo programmatico per ottenere una lista dei gestori. La risposta suggerita riguarda il debug o l'uso di jQuery. –

+0

@ADC: Sì, perché non ce n'è. – Bergi

risposta

5

No, non è possibile con i metodi DOM.

Tuttavia, alcune librerie memorizzano tutti i gestori che eseguono il binding in strutture di dati associate agli elementi per abilitare metodi come unbindAll.

Problemi correlati