Pregunta ¿Cómo comprobar si hay detectores / manejadores de eventos JavaScript adjuntos a un elemento / documento? [duplicar]


Esta pregunta ya tiene una respuesta aquí:

Intenté buscar en línea, pero no parece que pueda formular la consulta de búsqueda correctamente.

Tan simple como suena, ¿cómo puedo, ya sea con jquery o simplemente con javascript, listar todos los manejadores u oyentes de eventos que están adjuntos a elemento (s) / documento / ventana o presente en dom.

Sólo me preguntaba.

Gracias de antemano.


76
2018-03-04 21:54


origen


Respuestas:


En jQuery anterior a 1.8, intente usar $("#element").data("events")

EDITAR:

También hay una extensión jQuery: listHandlers


47
2018-03-04 21:57



Al depurar, si solo quieres ver si hay un evento, te recomiendo usar Evento visual o el Elementos de la sección de herramientas de desarrollo de Chrome: seleccione un elemento y busque "Escuchas de eventos" en la parte inferior derecha.

En su código, si usa jQuery antes de la versión 1.8, puede usar:

$(selector).data("events")

para obtener los eventos. A partir de la versión 1.8, esto se interrumpe (ver este boleto error) Puedes usar:

$._data(element, "events")

pero esto no se recomienda ya que es una estructura jQuery interna, y podría cambiar en versiones futuras.

Esta pregunta tiene algunas respuestas que pueden ser útiles, pero ninguna de ellas es particularmente elegante de la misma manera que $(selector).data("events") estaba.


32
2017-10-22 18:28



Sin jQuery:

si los oyentes se agregaron utilizando el método elem.addEventListener (), no es fácil hacer una lista de estos oyentes. Puede anular el método EventTarget.addEventListener () envolviéndolo con el suyo. Entonces usted tendrá la información, qué oyentes fueron registrados.

var f = EventTarget.prototype.addEventListener; // store original
EventTarget.prototype.addEventListener = function(type, fn, capture) {
  this.f = f;
  this.f(type, fn, capture); // call original method
  alert('Added Event Listener: on' + type);
}

Ejemplo de trabajo que puedes encontrar en http://jsfiddle.net/tomas1000r/RDW7F/


16
2018-01-23 20:26



Acabo de descubrir el evento visual 2:

http://www.sprymedia.co.uk/article/Visual+Event+2

vaya a la sección "Hacer que avance" y arrastre el enlace de texto a su barra de herramientas de marcador ir a una página que tiene eventos y hacer clic en el marcador

probado en FF Mac


3
2018-02-17 23:05