[英]Toggle menu only when it is open when we click anywhere on window
我正在一种情况下工作,因为我有一个菜单可以切换一个按钮。 当我单击该菜单按钮时,它会正常打开。
此代码问题仍然存在:
当我单击任何地方时,它都会打开和关闭。
现在我需要的是
当我单击窗口菜单上的任何位置时,都应关闭,但仅当它处于打开状态时才应关闭。 仅在处于打开状态时切换。
HTML代码:
<section id="wrapper"> <!-- Sidebar -->
<aside id="sidebar-wrapper">
<div class="togglebtn"><a href="#menu-toggle" id="menu-toggle"></a></div>
<ul class="sidebar-nav">
<li class="sidebar-brand"> <a href="#" class="ripple">
<div class="icon"><i class="demo-icon icon-meeter"></i></div>
<div class="nav-label"> <span>Dashboard</span></div>
</a>
</li>
</ul>
</div>
</aside>
</section>
JavaScript代码:
<script>
$("#menu-toggle").click(function(e) {
e.preventDefault();
e.stopPropagation();
$("#wrapper").toggleClass("toggled");
});
$("body").click(function (e) {
e.preventDefault();
$("#wrapper").toggleClass("toggled");
});
</script>
任何帮助将非常感激。
只需更改$("body").click
函数即可:
$("body").click(function () {
$("#wrapper").removeClass("toggled");
});
现在发生的事情是您每次单击身体的任何部分时都在“切换”该类。 切换根据当前状态打开或关闭一个类。 您只需要确保在单击主体时将其删除即可。
实际上,您可以使用toggleClass
来完成此操作,但是必须通过向其传递state
参数来告知您要删除该类。
$("#wrapper").toggleClass("toggled", false);
有关toggleClass的信息,请参见jQuery文档: http : //api.jquery.com/toggleclass/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.