2010-04-29 10 views

risposta

9

Se si voleva dire vedere il gestore click eventi per un elemento, si otterrebbe il primo handler in questo modo:

$("#element").data("events").click[0].handler 

Questo darebbe la . funzione esecuzione Here's an example page showing that

Ecco un esempio:

$("a").click(function() { 
    alert($("a").data("events").click[0].handler); 
});​ 

Al clic, questo sarebbe allertare: function() { alert($("a").data("events").click[0].handler); }

Questo è solo un esempio che utilizza click, ma qualsiasi cosa sia necessaria per i lavori, mouseenter, focus, qualunque sia l'evento, inclusi gli eventi personalizzati.

Per inciso, se si voleva un ciclo su tutti i gestori di eventi per un elemento o una collezione, questo dovrebbe funzionare, basta cambiare il selettore a quello che stai dopo (here's the same example updated to include this):

$.each($("a").data("events"), function(i, e) { 
    $.each(e, function(j, h) { 
    alert('Event: ' + i + '\nHandler:\n' + h.handler); 
    }); 
}); 

+0

+1 eccellente risposta. –

+0

metodo molto agile, grazie! – teMkaa

1

Hai provato a utilizzare FireQuery? Dovrebbe essere installato nella configurazione di Firefox/Firebug di tutti.

Problemi correlati