Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

133
Vistas
El activador de evento de clic de JavaScript se activa varias veces por clic

He mirado publicaciones similares pero parece que no puedo encontrar una solución.

Entonces, el problema al que me enfrento es que agrego dinámicamente divs con contenido. Si hace clic en ese contenido generado, sucede algo. El problema es que el evento clicklick se activa varias veces. Lo interesante es que en realidad comienza con solo 1 disparador, sube a 2, 4, 6, 10, 20, 40, etc. disparadores por clic.

 function AddArticle() { let single_article = document.createElement("div"); single_article.setAttribute("class", "each-article"); single_article = `<div> ANY ARTICEL </div>`; let prices_summary = document.getElementById('prices-summary'); prices_summary.appendChild(single_article); //Refresh the Event since we added on DIV to the NodeList RefreshClickEvent(); } function RefreshClickEvent() { let each_article = document.querySelectorAll(".each-article"); for (let article of each_article ) { article.addEventListener('click', () => { console.log("Trigger."); }); } }
 Console Log OutPut: Trigger. [2]Trigger. [4]Trigger. . . . [90]Trigger.

Agradezco cualquier ayuda.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Cuando agrega un elemento, el bucle en RefreshClickEvent funciona para todos los elementos (incluidos los elementos que se agregaron). Por lo tanto, debe definir un parámetro para agregar un evento a un elemento. Otro error de innerHTML para asignar contenido.

 function AddArticle() { let single_article = document.createElement("div"); single_article.setAttribute("class", "each-article"); single_article.innerHTML = `<div> ANY ARTICEL </div>`; let prices_summary = document.getElementById('prices-summary'); prices_summary.appendChild(single_article); //Refresh the Event since we added on DIV to the NodeList RefreshClickEvent(single_article); } function RefreshClickEvent(element) { element.addEventListener('click', () => { console.log("Trigger."); }); }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda