3

我发现许多其他成员也有同样的问题,除了他们都没有足够接近我的脚本来解决问题,或者我没有 jquery 的技术知识来自己解决它。

我有一个与下拉菜单相反的简单向上滑动菜单,我注意到当我将鼠标悬停在子 li 上时它会闪烁

我把它放在这里http://jsfiddle.net/noeg/F9QYb/2/来演示这个问题

(function ($) {

$("#menu > ul > li:has(ul)").mouseenter(function () {
    $(this).find("ul").stop(true, true).slideDown();
}).mouseleave(function () {
    $(this).find("ul").stop(true, true).slideUp();
});

})(this.jQuery);

谢谢。

4

2 回答 2

2

只需添加一个短暂的延迟:

$("#menu > ul > li:has(ul)").mouseenter(function () {
    $(this).find("ul").stop(true, true).delay(300).slideDown();
}).mouseleave(function () {
    $(this).find("ul").stop(true, true).delay(300).slideUp();
});

http://jsfiddle.net/samliew/F9QYb/3/

于 2013-09-04T02:43:34.257 回答
0

菜单和子菜单之间的白色间隙正在触发mouseleave,因为它不再位于内部<li>

解决此问题的一种方法是在菜单项上进行填充,以便它们与子菜单的底部相接,因此您的光标不会离开li并且不会触发mouseleave

这是一个解决方案:http: //jsfiddle.net/F9QYb/6/

于 2013-09-04T03:03:30.130 回答