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

370
Visualizações
Cómo detectar todos los enlaces dentro de un div, al pasar el mouse

En una aplicación Svelte, intento detectar cuándo el usuario se desplaza sobre un enlace, dentro de un div . Agregué un detector de eventos mouseover al div y estoy comprobando si el elemento es un enlace, pero esto es demasiado simplista: no detecta enlaces que contienen etiquetas HTML.

Código de ejemplo, también disponible como REPL :

 <script> import { onMount } from 'svelte'; let container; onMount(() => { container.addEventListener('mouseover', async (event) => { if (event.target.tagName !== 'A') return; console.log(event.target.attributes['href'].value); }); }); </script> <div bind:this={container}> <a href="https://www.example.com">Hello World</a> <a href="https://www.example.com"><strong>Hello World</strong></a> </div>

El problema es ese segundo enlace: al pasar el cursor sobre él, el objetivo es la etiqueta strong , no la etiqueta a . Entonces, ¿cómo puedo detectar de manera confiable todos los enlaces dentro del contenedor div sin tener que agregar un detector de eventos a cada enlace individual?

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

0

Desde el destino, use .closest('a') para navegar hasta el elemento <a> adjunto, si lo hay. (Si el elemento al que se envió el evento es un <a> , se devolverá).

 container.addEventListener('mouseover', (event) => { const a = event.target.closest('a'); if (a) console.log(a.href); }); 

 container.addEventListener('mouseover', (event) => { const a = event.target.closest('a'); if (a) console.log(a.href); });
 <div id="container"> <a href="https://www.example.com">Hello World</a> <a href="https://www.example.com"><strong>Hello World</strong></a> </div>

about 4 years ago · Juan Pablo Isaza Relatório

0

En lugar de vincular el contenedor a una variable y configurar el oyente dentro de onMount, también puede configurarlo en Svelte directamente en el elemento como este

 <script> function handleMouseover() { const a = event.target.closest('a') if(a) console.log(a.href); }; </script> <div on:mouseover={handleMouseover}> <a href="/path">Hello World</a> <a href="https://www.example.com"><strong>Hello World</strong></a> </div>
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