0

我正在使用jkmegamenu在单击锚标记时显示子菜单。我需要在再次单击文档或锚标记时隐藏子菜单。我只能在单击具有以下修改的锚标记时隐藏子菜单(删除鼠标离开:

megamenu.$menuobj.bind("click **mouseleave**", function(e){
        var menuinfo=jkmegamenu.megamenus[parseInt(this.getAttribute("_megamenupos"))]
        menuinfo.hidetimer=setTimeout(function(){ //add delay before hiding menu
            jkmegamenu.hidemenu(e, parseInt(menuinfo.$menuobj.get(0).getAttribute("_megamenupos")))
        }, jkmegamenu.delaytimer)
    })

但是如何在单击文档内的任意位置时隐藏菜单?

4

1 回答 1

0

您可以侦听window单击事件并检查页面上的哪个元素被单击。如果它是not您的子菜单的一部分,您可以隐藏您的子菜单。使用 jQuery,您可以完成如下操作:

$(window).click(function(e) {
    if(!$(e.target).hasClass('submenu-link')) {
        // hide menu here
    });
});

当然,如果您的导航看起来像这样:

<a class="submenu-link" href="/" ... />
于 2012-09-13T14:03:23.140 回答