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

271
Views
Pase el cursor sobre div, use su atributo de datos para cambiar el src de un img

Quiero desplazarme sobre un div y usar su atributo de datos único para cambiar el src de un img en otro lugar de la página. Entonces revisa la lista y la URL cambia según el div sobre el que se cierne. Mi enfoque hasta ahora fue agregar un evento de mouseover a todos los elementos de mi lista y activar una función cada vez que obtendrá el atributo de datos del elemento actual sobre el que se pasa el mouse. Pero no funciona y tengo la sensación de que me estoy acercando a esto desde el ángulo equivocado. Soy consciente de que esto se resuelve fácilmente usando unas pocas líneas de jquery, pero me gustaría no usarlo, ya que lo necesitaría únicamente para esto. Hay una manera de hacer esto en javascript simple y antiguo, ¿verdad?

 const workThumb = document.querySelectorAll('#work-thumb'); const works = document.querySelectorAll('.work-list').forEach(item => { item.addEventListener('mouseover', event => { var src = this.getAttribute('data-thumb'); workThumb.setAttribute("src", url); }) })
 <a class="work-list" data-thumb="http://url.to/test.jpg"> <a class="work-list" data-thumb="http://url.to/test.jpg"> <a class="work-list" data-thumb="http://url.to/test.jpg"> [...]
 <img id="work-thumb" src="test.jpg">
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

use querySelector (no querySelectorAll ):

ejemplo de trabajo...

 const workThumb = document.querySelector('#work-thumb') document.querySelectorAll('.work-list').forEach( item => { item.onmouseover = () => workThumb.src = item.dataset.thumb })
 a { display : block; margin : .3em; cursor : pointer; }
 <a class="work-list" data-thumb="https://via.placeholder.com/150x100/ff0000">ITEM-1</a> <a class="work-list" data-thumb="https://via.placeholder.com/150x100/00ff00">ITEM-2</a> <a class="work-list" data-thumb="https://via.placeholder.com/150x100/0000ff">ITEM-3</a> <img id="work-thumb" src="https://via.placeholder.com/150/" alt="">

about 4 years ago · Juan Pablo Isaza Report

0

Limpié tu código y aquí tienes un ejemplo de trabajo. Las etiquetas <a> se usan para enlaces, no para elementos de lista, use <ul> <li></li> </ul> en su lugar.

Mira mi demostración. Pase el cursor sobre cada elemento y la fuente de la imagen cambiará.

 const workThumb = document.getElementById('work-thumb'); const works = document.querySelectorAll('.work-list'); works.forEach(item => { item.addEventListener('mouseover', event => { workThumb.src = event.target.dataset.thumb; }); });
 <ul> <li class="work-list" data-thumb="https://via.placeholder.com/150x100/ff0000">ITEM-1</li> <li class="work-list" data-thumb="https://via.placeholder.com/150x100/00ff00">ITEM-2</li> <li class="work-list" data-thumb="https://via.placeholder.com/150x100/0000ff">ITEM-3</li> </ul> <img id="work-thumb" src="https://via.placeholder.com/150x100/" alt="">

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!