Используйте setTimeout
, который рассчитан на выстрел в конце анимации вместо обратного вызова.
$("example").hover(function(){
$("example").stop().show(1000);
setTimeout(function() { /* do something */ }, 1000);
}, function(){
$("example").stop().hide(1000);
setTimeout(function() { /* do something */ }, 1000);
}
);
Другой вариант - использовать .stop(true,true)
вместо .stop()
.
Это очищает очередь, отправляет анимацию до конца и запускает обратный вызов.
$("example").hover(function(){
$("example").stop(true,true).show(1000);
}, function(){
$("example").stop(true,true).hide(1000);
}
);