Как вы отменяете 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)

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