Работа с mouseenter и mouseleave

232
07 февраля 2019, 14:20

Есть проблема. ВОт код:

$(document).ready(function(){
  let src = '';
  $('.leave').mouseover(function(){
    src = $(this).children('img').attr('src').slice(0,-4) + '_red.svg';
    $(this).children('img').attr('src',src);
  });
  $('.leave').mouseout(function(){
    src = $(this).children('img').attr('src').slice(0,-8) + '.svg';
    $(this).children('img').attr('src',src);
  });
 });

Суть в чем, мне необходимо, чтобы при нажатии на элемент у него сохранялся src как при наведении, и наведение не срабатывало на этом элементе. А у меня получается так, что когда я удаляю класс leave, то события все равно срабатываю на элементе.

Answer 1

Альтернативой использования .mouseover(), .mouseout() и отключения обработчиков при помощи .off, есть использование метода .on().

Который позволяет при написании скрипта не следить за наличием класса у элемента.

Пример кода

$(document).ready(function() { 
  function onMouseover(e) { 
    $(e.currentTarget).css('background', '#000'); 
  } 
 
  function onMouseout(e) { 
    $(e.currentTarget).css('background', '#fff'); 
  } 
 
  $(document).on("mouseover", ".leave", onMouseover); 
  $(document).on("mouseout", ".leave", onMouseout); 
   
  $('.remove-class').click(function() { 
    $('.leave').removeClass('leave'); 
  }); 
});
.box { 
  width: 50px; 
  height: 50px; 
  border: 1px solid #000; 
  display: inline-block; 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
<div class="wrapper"> 
  <div class="box leave"></div> 
  <div class="box leave"></div> 
  <div class="box leave"></div> 
</div> 
<button class="remove-class">Удалить класс</button>

READ ALSO
createObjectURL is not a function Jest

createObjectURL is not a function Jest

Во время выполнения тестов на Jest, падает:

190
Drupal не подгружется css и js

Drupal не подгружется css и js

Залил drupal на хост, открыл стартовую страницу друпала а там такая штука не подгружаются cssПосмотрел в консоль, не может загрузить ни css файлы,...

204
Проблема при написании телеграм бота

Проблема при написании телеграм бота

Пишу простого бота для телеграм в редакторе Web StormЗапустив его в консоли, я столкнулся с ошибкой:

530