2016-11-29 55 views
0

我使用jQuery的向下滑动列表时mouseenter按钮如何停止jQuery的重复

$(".topics .goals").mouseenter(function(){ 
    $(".ligoals").slideDown("slow"); 
}); 

向上滑动时mouseleave

$(document).ready(function(){ 
    $(".topics .goals").mouseleave(function(){ 
    $(".ligoals").slideUp("slow"); 
    }); 
}); 

,但我有问题,所以,当我移动鼠标快速进出按钮的jquery保持滑落和向上。我想知道有没有人可以帮忙。

回答

1

这是因为mouseentermouseleave事件被压入队列中。如果你移动速度很快,许多动画就会排队,并按照时间顺序播放。

您可以使用.stop()来避免此行为。如下面:

$(document).ready(function(){ 
    $(".topics .goals").mouseleave(function(){ 
    $(".ligoals").stop(true).slideUp("slow"); 
    }); 
    $(".topics .goals").mouseenter(function(){ 
    $(".ligoals").stop(true).slideDown("slow"); 
    }); 
}); 

一般来说例如:

$el.event(function(){     
    $(this).stop(true).animate(...);     
}); 
+0

没关系这是正常的,非常感谢:) –