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 に答える