2

我的下拉菜单使用 jquery slideDown 和 slideUp 功能时遇到问题。

如果您将鼠标悬停在下拉列表 UL 上,如果您在它仍在向上滑动时将其移出并移回内部,它会开始闪烁/闪烁,就好像它正在快速快速射击中触发 mouseenter 和 mouseleave 事件一样。

我已经设置了一个小提琴来说明这个问题:http: //jsfiddle.net/LxL8Q/3/

在 Chrome 中,它只会闪烁一秒钟,然后自行修复,但在 Firefox 中,它会无限期地继续闪烁。

我知道这里有很多与闪烁的 jQuery 相关的问题,但我找不到任何可以帮助我的答案。

我确实尝试用一个简单的悬停功能替换整个 .each 循环,但是在这样做之后,我的上滑和下滑动画不起作用。

4

2 回答 2

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);
于 2012-10-05T15:15:57.543 回答
0

我遇到了这个问题并找到了解决方案:delay(50)slideUp(300). 在此处查看新小提琴:http: //jsfiddle.net/LxL8Q/42/

于 2013-11-27T21:11:44.757 回答