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');
}
});
感谢
答
您可以使用事件委托。当你点击'.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/
加上'e.stopPropagation();'到菜单单击处理程序。 – Amit
这不起作用 – Jolen