边栏仅在单击外部时关闭单击
Sidebar Closes onclick only when click outside of it
我有一个按钮/链接,可以打开我的侧边栏,调用相关函数onclick
。它有点像
<a id="menu-toggle" href="javascript:void(0);" onclick="event.stopPropagation(); opensidebar();" type="button">
<i class="sprite-t-toggle-side"></i>
</a>
它调用这个函数
function opensidebar() {
var $menu = $("#sidebar-wrapper");
$menu.toggleClass("active");
};
并像一样在文档点击时关闭
$(document).click(function(){
$('#sidebar-wrapper').removeClass("active");
});
它有效,但问题是即使我点击边栏内部,它也会关闭。我想保持它打开,因为那里有下拉菜单。我怎样才能做到这一点?谢谢
你可以这样做
$('#open').click(function() {
$('.sidebar').toggleClass('active')
})
$(document).click(function(e) {
var sidebar = $(".sidebar, #open");
if (!sidebar.is(e.target) && sidebar.has(e.target).length === 0) {
sidebar.removeClass('active')
}
});
body, html {
margin: 0;
padding: 0;
}
.sidebar {
transform: translateX(-120%);
display: inline-block;
height: 100vh;
background: lightblue;
transition: all 0.3s ease-in;
width: 200px;
}
.active {
transform: translateX(0);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="sidebar">Sidebar</div>
<button id="open">Toggle</button>
相关文章:
- 边栏仅在单击外部时关闭单击
- 单击外部时,Twiiter Bootstrap Modal未关闭
- 只有在单击外部li时才会触发的事件
- 单击外部链接后重定向,只打开一个选项卡/窗口
- 在Qualtrics中单击外部链接时进行跟踪
- jQuery 单击外部元素可向上或向下移动包含选中复选框的无序列表项
- 当我们在平板电脑上单击外部时,如何关闭引导程序 3 下拉菜单
- 在单击外部 Via 挖空绑定处理程序时,从引导程序 3.3.6 关闭弹出框
- 如何在单击外部时关闭侧边栏
- 如何在单击外部时关闭模式
- Javascript在单击外部时弹出隐藏,并显示是否单击了链接
- 防止在单击外部时关闭日期选取器
- 通过单击外部链接来寻址谷歌地图以更改 setZoom
- 通过单击外部关闭引导弹出窗口
- 分解javascript/jquery代码,以便在单击外部时隐藏模态
- 如何在 angular js 中单击外部关闭弹出窗口
- 响应式菜单在单击外部时不会切换或关闭
- 角度材质 md 菜单元素如果在具有 z 索引的固定元素上单击外部,则不会关闭
- 使用此脚本通过单击外部关闭按钮时遇到问题
- iPad 上的 jQuery UI 选择菜单在单击外部时无法正确关闭