2012-05-02 2 views
1

E.g. выпадающее меню, если вы визуализируете его и быстро наведите курсор мыши на кнопку «about us» и выйдете как 5 раз, а стоп-меню откроется несколько раз, а затем остановится. Мне нужно просто сделать последнюю анимацию.jQuery остановка анимации из очереди, когда много событий mouseover

<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

Смежные вопросы