当我将鼠标悬停在#HoverMe
上时#hidden
显示,如果我将其悬停,#hidden
将按预期消失。但是,如果我"垃圾邮件" hover-unhover-hover-unhover非常快,它会被捕获,所以下次我悬停#HoverMe
,#hidden
然后立即消失。我认为有某种定时器循环搞砸了吗?我该如何预防?
$("#HoverMe").hover(function() {
$("#hidden").show();
}, function() {
$("#hidden").delay(1000).fadeOut();
});
答案 0 :(得分:2)
在开始下一个动画之前,使用stop(true)
删除任何排队的动画:
$("#HoverMe").hover(function() {
$("#hidden").stop(true).show();
}, function() {
$("#hidden").stop(true).delay(1000).fadeOut();
});

#hidden {
display: none;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="HoverMe">Hover me</div>
<div id="hidden">Not hidden!</div>
&#13;