0

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

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

4

1 回答 1

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");
        }
});

请记住,在这种方法中,如果菜单滑动(例如,设计)比菜单滑动(例如,开发)长得多,那么您将遇到“开发”可能会滑动的情况,因为鼠标会离开它的覆盖区域,因为“设计”的滑动。只需在“设计”菜单中添加另一个项目来测试它。

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

于 2012-10-11T07:59:56.870 回答