我下面的代码似乎不起作用。

$("ul li a").live("click", function() {
        $(".myMegaMenuDiv").addClass('hideit').delay(300).removeClass('hideit');
 });


我有一个大型菜单,因此当您将鼠标悬停在菜单项上时,它将显示一个div“ .myMegaMenuDiv”。但是,当我单击该div中的链接时,我希望它消失,因为当前没有。我希望上面的代码能解决这个问题。

“ hideit”添加值“ display:none”

当我只有“ addClass”时,它可以工作,但是当我添加“ delay”和“ removeClass”时,它将停止工作。

编辑:另外...在我隐藏“ .myMegaMenuDiv”后,当我将鼠标悬停在导航菜单项上时,菜单不会显示,因此也需要删除该类

最佳答案

如果只想在单击时隐藏div,则可以使用hide函数。另外,不建议使用live函数,因此最好使用on

$("ul li a").on("click", function() {
    $(".myMegaMenuDiv").hide();
});


如果要隐藏和显示,可以使用setTimeout:

$("ul li a").on("click", function() {
    $(".myMegaMenuDiv").hide();
    setTimeout(function() {
        $(".myMegaMenuDiv").show();
    }, 300);
});

10-07 18:19