2012-05-02 22 views
1

E.g.下拉菜单如果哟渲染它,并迅速将鼠标移到“关于我们”按钮上并出现5次,并停止菜单打开几次然后停止。我需要它来做最后一个动画。jQuery在许多鼠标悬停事件中排队等待排队

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("ul.topnav li a").mouseenter(function() { 
      $(this).parent().find("ul.subnav").slideDown('fast').show(); 
     }); 


     $(".dropdown").mouseleave(function(){ 
      $(this).stop(true, false); 
      $(this).parent().find("ul.subnav").slideUp('fast'); 
     }); 
    }); 

HTML:

<ul class="topnav"> 
    <li><a href="#">Home</a></li> 
    <li class="dropdown"> 
     <a href="#">About Us</a> 
     <ul class="subnav dropdown"> 
      <li><a href="#">Sub Nav Link 1</a></li> 
      <li><a href="#">Sub Nav Link 2</a></li> 
     </ul> 
    </li> 
</ul> 
</script> 

回答

5

前缀你有.stop(true, true)过渡,例如:

$(this).parent().find("ul.subnav").stop(true, true).slideDown('fast').show(); 
+1

奇怪的是,他用.stop()他的其他元素,但不是这一个。 – j08691

+0

这是不正确的方式来使用停止,我有,这个答案表明了正确的方式,谢谢。 – JohnA