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

132
Vistas
¿Cómo forzar Event.curentTarget para eventos enviados en oyentes globales en javascript?

Tengo una pregunta sobre el envío de eventos en Javascript.

Aquí hay una pequeña sección de código que proporciona la introducción , que funciona como se esperaba. El event.currentTarget es lo mismo que si hiciera clic directamente en el botón.

 var button1 = document.querySelector('.button1'); button1.addEventListener('click', function (e) { alert(`Button1 was clicked!\nEvent currentTarget: ${e.currentTarget} .${e.currentTarget.className}`); }); var event = new Event('click'); button1.dispatchEvent(event);
 <p>if you load the page a button click will be dispatched</p> <button class="button1">Button1: If you click me I wil open an alert</button> <p>Expected Output: "Button1 was clicked! [object HTMLButtonElement] .button1"</p>

Pregunta: ¿Por qué es diferente si tengo un oyente en el documento?

Event.currentTarget parece ser el elemento desde donde se envió el evento, no el elemento donde se invocó el envío.

 var button1 = document.querySelector('.button1'); document.addEventListener('click', function (e) { alert(`Button1 was clicked!\nEvent.currentTarget: ${e.currentTarget} .${e.currentTarget.className}`); }); var event = new Event('click'); button1.dispatchEvent(event);
 <p>Click anywhere besides the button itself to see the difference!</p> <button class="button1">Button1: If you click me I wil open an alert</button> <p>Expected Output: "Button1 was clicked! [object HTMLButtonElement] .button1"</p> <p>Actual Output: "Button1 was clicked! [object HTMLHtmlElement]"</p>

¿Hay alguna forma de forzar event.currentTarget?

Idealmente, quiero usar un oyente global que maneje múltiples propósitos y verifique por event.target si se hizo clic en ese botón.

Entonces, ¿cómo puedo diferenciar entre cualquier otro clic y el evento de envío para el botón mientras sigo usando un detector de eventos global?

¡Se puede encontrar una demostración un poco más detallada en codepen!

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

0

Creo que la pregunta real es cómo hacer que un evento activado burbujee en un árbol. Use MouseEvent y configúrelo para que burbujee.

 var button1 = document.querySelector('.button1'); document.addEventListener('click', function (e) { console.log( e.target.nodeName, e.currentTarget.nodeName); }); const event = new MouseEvent("click", { view: window, bubbles: true, cancelable: true, }); button1.dispatchEvent(event);
 <button class="button1">Click</button>

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