¿Cómo encontrar escuchadores de eventos en un nodo del DOM cuando se depura o desde el código JavaScript?
Tengo una página en la que algunos escuchadores de eventos están adjuntos a cuadros de entrada y cuadros de selección. ¿Hay alguna manera de averiguar qué oyentes de eventos están observando un nodo DOM en particular y para qué evento?
Los eventos se adjuntan utilizando:
- Prototype's
Event.observe
; - DOM's
addEventListener
; - Como atributo del elemento
element.onclick
.
799
3
Si sólo necesita inspeccionar lo que ocurre en una página, puede probar el bookmarklet Evento visual.
Actualización: Evento visual 2 disponible;
Depende de cómo se adjunten los eventos. Para ilustrar, supongamos que tenemos el siguiente controlador de clic:
Vamos a adjuntarlo a nuestro elemento utilizando diferentes métodos, algunos que permiten la inspección y otros que no.
Método A) manejador de evento único
Método B) múltiples manejadores de eventos
Método C): jQuery
1.3.x
1.4.x (almacena el manejador dentro de un objeto)
(Ver
jQuery.fn.data
yjQuery.data
)Método D): Prototipo (desordenado)
1.5.x
1.6 a 1.6.0.3, inclusive (se puso muy difícil aquí)
1.6.1 (un poco mejor)
Si tienes Firebug, puedes usar
console.dir(object or array)
para imprimir un bonito árbol en el registro de la consola de cualquier escalar, array u objeto de JavaScript.Pruebe:
o