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

264
Views
EventListener agregado al div principal, pero event.target se convierte en elemento secundario si se hace clic en él

Estoy trabajando con div en forma de tarjeta en los que necesito poder hacer clic. Estoy usando JS (stimulusJS) para agregarles un EventListener , de modo que cuando el usuario hace clic en la tarjeta, el detector de eventos se dispara agregando algunas clases de CSS y llenando algunos campos ocultos con datos que provienen del conjunto de datos div s.

tarjeta

 <div class="card d-flex flex-column data-selectable-target="selectable" data-pricing-model-value="flat_fee"> <div class="self-end"> <strong> <span class="mr-3" data-toggle="tooltip" title="<%= t(".tooltip") %>"><%= icon("exclamation-circle", classes: "h-4 w-4") %></span> </strong> </div> <h5><%= t(".title") %></h5> <p> <%= t(".description") %></p> </div>

controlador JS

 import { Controller } from 'stimulus'; export default class extends Controller { static targets = ["selectable"] connect() { this.selectableTargets.forEach((element) => { element.addEventListener("click", (event) => { this.select(event.target); }); }) } select(element) { element.classList.add("selected") this.selectableTargets.forEach((target) => { if (target != element) { target.classList.remove("pricing-model-selected") } }) } }

Problema: estoy usando event.target esperando obtener el div principal al que agregué EventListener . En cambio, si hago clic en los elementos h5 o p de la tarjeta, se convierten en el event.target estropeando mi implementación. ¿Hay algo que se pueda hacer para garantizar que event.target siempre se refiera al div principal al que se agregó EventListener ?

about 4 years ago · Juan Pablo Isaza
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!