Non è possibile farlo in un modo molto buono "semplicemente" utilizzando ECMAscript stesso. Per esempio, se ci fosse un gestore di eventi click aggiunto da DOM Level 1 sotto forma di
document.getElementById('buy').onclick = function() {};
si può ovviamente facilmente intercettare quella proprietà sul nodo stesso. Le cose si complicano se DOM Livello 2 entra in gioco con .addEventListener()
rispettando lo .attachEvent()
. Ora non hai davvero un "luogo" dove cercare dove si trovano tutte le diverse funzioni dell'ascoltatore.
Migliora usando jQuery. jQuery manterrà tutte le sue funzioni del gestore di eventi in un oggetto speciale che è collegato al nodo DOM di invocazione. È possibile verificare la presenza di che ottenendo la -expando proprietà .data()
per un nodo come
$('#buy').data('events');
Tuttavia, ora ho già descritto tre modi diversi di listener di eventi di legame ad un nodo (in realtà la sua due perché una libreria come jQuery inoltre usa Metodi DOM Level 1 o 2 ovviamente).
Diventa davvero brutto se un evento viene attivato per delega. Ciò significa che abbiamo limitato il nostro evento click su qualche nodo genitore aspettando solo l'evento che ci ha fatto ribollire, così possiamo controllare lo target
. Quindi ora non abbiamo nemmeno una relazione diretta tra node
e event listener
.
Conclusione: ecco un plug-in del browser o probabilmente una cosa come VisualEvent.
Dov'è il gestore dell'evento? –
Stai chiedendo * come * un gestore di eventi è collegato al div? – Blazemonger
nota a margine: non devi usare div come pulsanti usa o Im a link invece. –