@Kaunov_ivan

В чем проблема в коде jquery?

HTML:
<div class="center sheet">
      <a href="" class="img"><img src="img/sheet.png"></a>
</div>

JS:
$(".sheet").on('mouseover', '.img', function(){
         $('.img').html('<img src="img/sheet2.png">');
         console.log('over');
     });
     $(".sheet").on('mouseout', '.img', function(){
         $('.img').html('<img src="img/sheet.png">');
         console.log('out');
     })


При наведении по надцать раз появляется картинка вторая, но первая возвращаться не хочет.
  • Вопрос задан
  • 226 просмотров
Решения вопроса 1
Menlod
@Menlod
Front-end developer
$('.sheet').hover(function() {
      $('.img img', this).attr("src", "img/img/sheet2.png");
  }, function() {
    $('.img img', this).attr("src", "img/img/sheet.png");
  });
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
IonDen
@IonDen
JavaScript developer. IonDen.com
Не так! А вот так:
$(".sheet").on('mouseover', '.img', function(){
    $(this).find('img').prop('src', 'img/sheet2.png'); // <- меняем содержимое src
    console.log('over');
});
$(".sheet").on('mouseout', '.img', function(){
    $(this).find('img').prop('src', 'img/sheet.png'); // <- меняем содержимое src
    console.log('out');
});
Ответ написан
Комментировать
hahenty
@hahenty
('•')
Тут лучше менять свойство картинки, а не содержимое ссылки.
$('.img img').attr('src','img/sheet123.png');
Ответ написан
Комментировать
DesTincT
@DesTincT
Фрилансер
mouseenter/mouseleave
$(".sheet").on('mouseenter', '.img', function(){
  $('img', this).attr("src", "img/img/sheet2.png");
}).on('mouseleave', '.img', function(){
  $('img', this).attr("src", "img/img/sheet.png");
})
Ответ написан
Комментировать
kn1ght_t
@kn1ght_t
проще через css сделать, не?
sheet:hover и менять бэкграунд
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы