Это потому, что анимации ставятся в очередь в jQuery.Эффект slideUp
будет запущен только после завершения отложенного эффекта slideToggle
, и ваш элемент <div>
будет к этому времени скрыт.
Вам необходимо вызвать stop () дляотмените задержку, как предлагает @Mark, но вы можете передать true
в своем первом аргументе:
$("#close").click(function() {
$("#message").stop(true).slideUp("slow");
});
Таким образом, все эффекты, находящиеся в очереди на элементе <div>
, будут очищены,не только тот, который в настоящее время работает.