Как вы отменяете jQuery fadeOut () после его начала?

У меня есть базовый элемент div для представления сообщения, которое я показываю в течение нескольких секунд, а затем исчезаю, используя

$('#message').fadeOut(5000);

Я хочу иметь возможность отменить исчезновение, если пользователь наводит указатель мыши на элемент div.

Как я могу отменить исчезновениекогда метод fadeOut начал исчезать div?

Мой существующий код, приведенный ниже, работает, если мышь входит в div, пока он отображается, но мне нужно учесть, если пользователь наводит курсор на div, когда он начинает исчезать.

$('#message').mouseenter(function() {
  clearTimeout(this.timeout);
});
$('#message').mouseleave(function() {
  this.timeout = setTimeout("$('#message').fadeOut(5000)", 3000);
});
$('#message').fadeIn(2000, function() {
  this.timeout = setTimeout("$('#message').fadeOut(3000)", 3000);
});

Ответы на вопрос(2)

вы можете проверить, находится ли элемент в середине анимации, используя:animated селектор:

$('#message').mouseover(
    function () {
      if($(this).is(':animated')) {
         $(this).stop().animate({opacity:'100'});
      }
    }
);
 David Glenn14 сент. 2009 г., 15:33
Тот'Полезно знать, спасибо.
Решение Вопроса
 daddywoodland14 сент. 2009 г., 14:48
отлично! используя stop, вы возвращаетесь в нормальное состояние для функции mouseenter: $ (this) .stop (). animate ({opacity: '100'});
 David Glenn14 сент. 2009 г., 15:33
Я могу'не верю, что я незаметить это в документации по jQuery! Это должен быть понедельник. Благодарю.
 cbmtrx27 окт. 2015 г., 16:00
В частности, @daddywoodland 's .stop (). animate ({непрозрачность: '100'}) combo - это то, что позволяет любому fadIn / fadeOut перезапускаться в зависимости от вашего триггера. Работает отлично.

Ваш ответ на вопрос