jQuery关闭菜单自动关闭

问题描述:

建立一个移动菜单,并希望当用户点击文档时,而不是菜单关闭菜单,如果它打开。 问题是,当第一次点击被打开时,它会自动关闭手机。我努力让这一点工作。jQuery关闭菜单自动关闭

该代码识别点击,以便窗口检测到正确的操作。我只想念我想的最后一步。

代码是:

$('.mobile-menu-button').click(function(e) { 
    e.preventDefault(); 
    $('.mobile-menu').slideToggle('slow'); 
}); 
// close on off click 
$(window).click(function(e){ 
    e.preventDefault(); 
    e.stopPropagation(); 
    if($('.mobile-menu').css("display") == 'block') { 
     $('.mobile-menu').slideToggle(); 
     console.log('click'); 
    } 
}); 

感谢

+0

加上'e.stopPropagation();'到菜单单击处理程序。 – Amit

+0

这不起作用 – Jolen

您可以使用事件委托。当你点击'.mobile-menu'时,你打开它或关闭它,当你点击其他地方时你只关闭它。

$(window).on('click', function(e){ 
    e.preventDefault(); 
    if ($(e.target).hasClass('mobile-menu-button')) { 
     $('.mobile-menu').slideToggle('slow'); 
    } else { 
     $('.mobile-menu').css('display') === 'block' && $('.mobile-menu').slideUp(); 
    } 
}); 

这个捣鼓一个基本的例子:https://jsfiddle.net/6e7atrmn/2/

+0

它不起作用,菜单不显示 – Jolen

+0

更新,这是一些细节,你shohld得到的想法表单*而不是代码 –

+0

不起作用,做同样的事情,我的代码以前做过。向下滑动然后立即向上滑动。 – Jolen