以下代码似乎无法正常工作。
$("ul li a").live("click", function() {
$(".myMegaMenuDiv").addClass('hideit').delay(300).removeClass('hideit');
});
我有一个超级菜单,所以当你将鼠标悬停在一个菜单项上时,它会显示一个div“.myMegaMenuDiv”。但是,当我单击该div中的链接时,我希望它消失,因为它目前没有。我希望上面的代码可以解决这个问题。
“hideit”添加“display:none”值
当我只有“addClass”时,它可以工作,但是当我添加“delay”和“removeClass”时,它就会停止工作。
编辑:另外......在我隐藏“.myMegaMenuDiv”后,当我将鼠标悬停在导航菜单项上时菜单没有显示,所以它也需要删除该类
答案 0 :(得分:7)
如果您只想在点击时隐藏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);
});
答案 1 :(得分:5)
.hide()
和.show()
方法can receive a number to determine their duration,因此您可以尝试这样做:
$(".myMegaMenuDiv").hide(300).show(0);
如果你不想要动画,你也可以这样做:
$('.myMegaMenuDiv').hide(0).delay(300).show(0)
答案 2 :(得分:3)
delay
不仅仅是一个简单的暂停计时器。它仅适用于动画队列中的项目。您需要使用setTimeout