español - javascript pdf
Verifique si un elemento tiene detector de eventos. no jquery (3)
Esta pregunta ya tiene una respuesta aquí:
cómo verificar si un elemento tiene detector de eventos en él, si uso una función en línea como el código a continuación. porque tengo una función que recupera la función y agrega el detector de eventos, pero hace que el detector de eventos de duplicación provoque que active una función dos veces. Entonces, ¿cómo puedo verificarlo para evitar que agregue un detector de eventos si ya existe? ¡Gracias! :RE
for (var a = 0;a<formFieldInput.length;a++) {
if(formFieldInput[a].hasAttribute("name") && formFieldInput[a].attributes.title.value !== "Valid Until") {
formFieldInput[a].addEventListener("click",function(event) {
toggleFieldList(event,"show");
});
}
Hoy en día (2016) en la consola de Chrome Dev Tools, puede ejecutar rápidamente esta función a continuación para mostrar todos los oyentes de eventos que se han adjuntado a un elemento.
getEventListeners(document.querySelector(''your-element-selector''));
No hay una función de JavaScript para lograr esto.
Sin embargo, puede establecer un valor booleano en
true
cuando agrega el oyente y
false
cuando lo elimina.
Luego verifique este booleano antes de agregar potencialmente un detector de eventos duplicado.
Posible duplicado: ¿Cómo verificar si el detector de eventos conectado dinámicamente existe o no?
No necesitas hacerlo. Simplemente dale una palmada allí tantas veces como quieras y tantas veces como quieras. MDN explica oyentes de eventos idénticos :
Si se registran múltiples EventListeners idénticos en el mismo EventTarget con los mismos parámetros, las instancias duplicadas se descartan. No provocan que EventListener se llame dos veces, y no es necesario eliminarlos manualmente con el método
removeEventListener
.