悬停在其他子菜单项上时,jQuery子菜单不会关闭

时间:2012-10-08 13:03:12

标签: jquery html css

我的菜单适用于悬停事件,当我将鼠标悬停在子菜单上时,它会打开自己的子菜单,但是当我将鼠标悬停在其他子菜单上时,上一个子菜单的子菜单应自行关闭。请检查我的工作jsfiddle:

http://jsfiddle.net/samia/3N7BG/

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

$(".topmenu .sub-menu .parent a").mouseover(function() {
        if($(this).parent().attr('id') != $("li .open").attr('id') 
            && $(this).parent().has("ul").length > 0) {
            if($("li .open").length > 0) {
                $("li .open").children("ul").slideToggle(1000);
                $("li .open").toggleClass("open");
            }
            $(this).parent().children("ul").slideToggle(200);
            $(this).parent().toggleClass("open");
        }
});

请记住,在这种方法中,如果菜单slidingUp(例如,Design)比菜单slidingDown(例如,开发)长得多,那么你将遇到'开发'可能会滑动的情况,因为鼠标会将其覆盖区域由于'Design'的滑动。只需在“设计”菜单中添加另一个项目即可对其进行测试。

对于当前的项目列表,上述实现应该可以正常工作。