Jak anulować jQuery fadeOut () po rozpoczęciu?

Mam podstawowy element div, który reprezentuje wiadomość, którą pokazuję na kilka sekund, a następnie ją wygaszam

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

Chcę móc anulować zanikanie, jeśli użytkownik najedzie myszą na div.

Jak mogę anulować zanikaniekiedy metoda fadeOut zaczęła zanikać div?

Mój istniejący kod, poniżej, działa, jeśli mysz wejdzie do div, podczas gdy jest on pokazywany, ale muszę zezwolić na to, aby użytkownik zatrzymał kursor nad div, gdy zacznie zanikać.

$('#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);
});

questionAnswers(2)

yourAnswerToTheQuestion