2013-12-09 59 views
2

我有一個列表,當一個div懸停在右邊的彈出窗口。我想用jquery slideUp/Down來顯示和隱藏大部分時間工作的列表。但有時候該功能會反覆觸發。不斷打開和關閉。我不確定它爲什麼這樣做。有任何想法嗎?jQuery slideUp/Down不斷重複?

繼承人我的代碼:

$(myDiv).hover(

    function() { 

    $('ul.list_menu').slideDown('medium'); 

    }, 
    function() { 

     $('ul.list_menu').slideUp('medium'); 

    } 

);

回答

3

嘗試一些stops

$(myDiv).hover(function() { 
    $('ul.list_menu').stop(true, true).slideDown('medium'); 
},function() { 
    $('ul.list_menu').stop(true, true).slideUp('medium'); 
}); 
+0

謝謝。我結束了使用clearQueue() –

1

你必須向我們展示你的HTML肯定知道是怎麼回事,但如果向下滑動菜單的行爲會導致鼠標不再是過div,那麼它將自動「解除懸停」並觸發菜單關閉,然後當它關閉時,它將再次懸停,並將循環來回移動某些鼠標位置。

這樣做的方法是更改​​HTML,以便向下放下菜單不會與鼠標位置重疊,從而使其下降或使用關閉除您的懸停之外的菜單的其他機制DIV。

要使用快速徘徊和dehovering鼠標解決的問題(儘管它不健全,這是你所描述的問題),那麼你也應該用.stop(true)取消先前的喧鬧這樣的:

$('ul.list_menu').stop(true).slideDown('medium');