Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

220
Views
Cómo saber dónde se cancela mi evento de clic de JavaScript

Estoy trabajando en un proyecto de Shopify y no soy el desarrollador original, que no está disponible, junto con una versión no minimizada del archivo javascript incluido en cada página.

El sitio original tiene una página que muestra una cuadrícula de fotografías de los empleados. Se me encargó mejorar haciendo que cada foto de rostro tenga una superposición que muestre información adicional y que al hacer clic en la imagen de la foto de rostro O en la superposición (y su contenido) se realice alguna acción adicional.

Cada elemento de la cuadrícula (primer plano) se ve esencialmente así:

 <div class="wrap"> <img src="PATH_TO_IMG"> <div class="info">Danny Testeroni</div> </div>

y mi detector/controlador de eventos se ve así:

 const $item = document.querySelector('.wrap'); $item.addEventListener('click', (e) => { console.log(e.target); });

Todo funciona como se esperaba.

Al hacer clic en cualquier lugar dentro del elemento de cuadrícula, console.log es la imagen A MENOS que haga clic en cualquier lugar de la superposición, en cuyo caso, console.log es el contenedor de superposición. Esto es lo que necesito.

Sin embargo, cuando agrego esto a la plantilla real de Shopify (en la que se incluye este archivo JavaScript global), obtengo resultados diferentes.

Al hacer clic en cualquier lugar dentro del elemento de la cuadrícula, console.log es la imagen A MENOS que haga clic en cualquier lugar de la superposición, en cuyo caso, console.log es NADA.

Lo único que puedo concluir es que algo en el archivo JavaScript global está cancelando el evento de clic en <img> , por lo que nunca llega a la superposición. ¿Es este el caso? Si es así, ¿hay alguna forma de saber dónde está sucediendo esto y posiblemente anularlo con mi nuevo script? Y si no, ¿alguna idea de por qué los clics en la superposición pueden no registrarse en la Tienda real en lugar de mi prototipo básico, que se puede ver en este Codepen ?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Puede eliminar la función de flecha en su identificador addEventListener y usar esto para hacer referencia al elemento al que se adjuntó

 const $item = document.querySelector('.wrap'); $item.addEventListener('click', function(e) { console.log(this); })
 <div class="wrap"> <img src="https://cdn.shopify.com/s/files/1/0598/3089/4765/articles/barber-culture_x700.png?v=1646319227"> <div class="info">Danny Testeroni</div> </div>

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!