我有点陷入如何阻止菜单执行 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); });
})
看看本阿尔曼的“外部事件”插件 http://benalman.com/projects/jquery-outside-events-plugin/。它允许您定义一系列事件,而不仅仅是单击事件。有了它,您的代码将如下所示:
$('.rtmenu').bind('clickoutside', function() {
$(this).fadeOut(200);
});
顺便说一句,您不应该在菜单的单击事件内设置绑定,这将在每次单击菜单选项时附加另一个处理程序。您的代码应该替换为以下内容:
$('a.main-menu-item').click(function(){
// Show menu item
});
$('.rtmenu').bind('clickoutside', function() {
$(this).fadeOut(200);
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)