如何阻止jquery重复

时间:2016-11-29 22:53:08

标签: javascript jquery

我使用jQuery在mouseenter按钮

时向下滑动列表
 $(".topics .goals").mouseenter(function(){
    $(".ligoals").slideDown("slow");
 });

并在mouseleave

时向上滑动
$(document).ready(function(){
  $(".topics .goals").mouseleave(function(){
    $(".ligoals").slideUp("slow");
  });
});

但是我有问题所以当我快速移动鼠标按钮时,jquery会一直向下滑动。我想知道是否有人可以提供帮助。

1 个答案:

答案 0 :(得分: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(...);                
});