2012-10-05 98 views
2

我的下拉菜單中存在一個問題,它使用了jQuery的slideDown和slideUp功能。jQuery下拉菜單閃爍

如果您的鼠標懸停在下拉列表UL上,如果您將其移出並移回內部,同時它仍然向上滑動,它將開始閃爍/閃爍,就像它在快速點燃中觸發mouseenter和mouseleave事件一樣。

我已經建立了小提琴來說明這個問題:http://jsfiddle.net/LxL8Q/3/

在Chrome中,只閃爍了一秒鐘,然後補救措施本身,在Firefox但是它仍然閃爍的時間無限期量。

我知道這裏有一些與閃爍jQuery有關的問題,但我無法找到任何答案可以幫助我。

我嘗試用一​​個簡單的懸停函數替換整個.each循環,但是做完這些之後,我的幻燈片和幻燈片動畫無法正常工作。

+1

嘗試使用'.stop()'的默認值代替。 http://jsfiddle.net/j08691/LxL8Q/4/ – j08691

+0

@ j08691這工作得很好,你知道是否有一種簡單的方法讓它向下滑動,而不是在部分摺疊時停止它? – nmford

回答

2

試試這個:

(function($){ 

var nav = $("#topNav"); 

nav.find("li").each(function() { 
if ($(this).find("ul").length > 0) { 

    //show subnav on hover 
    $(this).mouseover(function() { 
     $(this).find("ul").slideDown(300); 
    }); 
    //hide submenus on exit 
    $(this).mouseleave(function() { 
     $(this).removeClass('active').find("ul").stop(true).slideUp(300); 
    }); 
} 
}); 

})(jQuery); 
+0

已編輯,應該現在工作 – Rayshawn

+0

當我這樣做時,我完全失去了滑動動畫 – nmford

+0

你想要它停止後,它向上或向下滑動。 – Rayshawn