我遇到了如何阻止我的菜单执行fadeOut()函数的问题。当我单击菜单上的主链接打开子菜单时,它会淡出。以下是代码目前的工作方式:
$('a.main-menu-item').click(function(){
if($('.rtmenu:visible')){
$('.rtmenu').click(function(e) { e.stopPropagation(); });
$(document).click(function() {
$('.rtmenu').fadeOut(200);
});
}
})
任何人都可以告诉我如何写“如果没有点击a.main-menu-item”,它会显示“文档”吗?
备受赞赏
已完成解决方案!
$('.rtmenu').click(function(e) { e.stopPropagation(); });
$('.rtmenu').mouseout(function(){
$(document).one('click',function() { $('.rtmenu').fadeOut(200); });
})
答案 0 :(得分:1)
看看Ben Alman的"outside events" plugin。它允许您定义一系列事件,而不仅仅是单击事件。有了它,你的代码看起来像这样:
$('.rtmenu').bind('clickoutside', function() {
$(this).fadeOut(200);
});
另外,您不应该在菜单的click事件中设置绑定,每次单击菜单选项时,这将附加另一个处理程序。您的代码应替换为:
$('a.main-menu-item').click(function(){
// Show menu item
});
$('.rtmenu').bind('clickoutside', function() {
$(this).fadeOut(200);
});
答案 1 :(得分:0)