Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

163
Visualizações
Cómo llegar fuera de un div en un objeto HTMLDivElement con Javascript

Tengo varios elementos HTML que representan mosaicos que se voltearán al hacer clic. Cada elemento tiene un contenedor div, que contiene dos divs, uno para el anverso y el reverso del mosaico.

 <div class="flip-container" data-tile> <div class="flipper"> <div class="front white"> <!-- front content --> </div> <div class="back blue"> <!-- back content --> </div> </div> </div>

Tengo la animación resuelta en CSS, por lo que los mosaicos "voltean" al pasar el mouse. Hasta aquí todo bien. Ahora estoy tratando de cambiar el classList del "flip-container" al hacer clic, para que se llame a un nombre de clase diferente desde mi hoja de estilo.

Mi problema es que mi función handleClick está dirigida solo al "back-blue" del div interno, y no al "flip-container" que contiene ambos divs.

 const tileData = document.querySelectorAll('[data-tile]') const flipContainers = Array.from( document.getElementsByClassName('flip-container') ) flipContainers.forEach((container) => { container.addEventListener('click', handleClick, { once: true }) }) function handleClick(e) { console.log('clicked') const container = e.target const currentClassColor = 'blue' fixColor(container, currentClassColor) } function fixColor(container, currentClassColor) { container.classList.add(currentClass) }

Intenté consultar el "flip-container" seleccionando la etiqueta de datos y también tomando una matriz del nombre de clase específico. En ambos casos, el elemento completo aún se captura y el objetivo del clic se aplica solo al div interno. Supongo que tiene sentido por qué sucede esto, pero ¿hay alguna forma de acceder al contenedor incluso si el destino del clic es uno de los divs internos?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Lo que quieres es probablemente e.currentTarget .

La propiedad de solo lectura currentTarget de la interfaz Event identifica el destino actual del evento, ya que el evento atraviesa el DOM. Siempre hace referencia al elemento al que se ha adjuntado el controlador de eventos, a diferencia de Event.target, que identifica el elemento en el que se produjo el evento y que puede ser su descendiente.

https://developer.mozilla.org/en-US/docs/Web/API/Event/currentTarget

Si eso no funciona para su caso, querrá probar e.currentTarget.parentNode

about 4 years ago · Juan Pablo Isaza Relatório

0

e.target es el div en el que se hizo clic, si desea el div al que está adjunto el controlador de eventos, puede usar this palabra clave o e.currentTarget .

 function handleClick(e) { console.log('clicked') // const container = this const container = e.currentTarget const currentClassColor = 'blue' fixColor(container, currentClassColor) }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda