【发布时间】:2016-09-05 15:53:02
【问题描述】:
这里是新手),
我正在使用bootsnav 创建带有切换按钮的侧边菜单。如果用户单击菜单外的其他位置,我希望它关闭,但我无法使其工作。我尝试了在论坛上找到的几种解决方案(确实有很多),但没有。
我尝试使用toggleClass和removeClass对jquery执行this之类的操作,但最好的尝试导致菜单无法打开,因为切换类同时触发和未触发。
这是触发菜单的代码:
$("nav.navbar.bootsnav .attr-nav").each(function(){
$("li.side-menu > a", this).on("click", function(e){
e.preventDefault();
$("nav.navbar.bootsnav > .side").toggleClass("on");
$("body").toggleClass("on-side");
});
});
$(".side .close-side").on("click", function(e){
e.preventDefault();
$("nav.navbar.bootsnav > .side").removeClass("on");
$("body").removeClass("on-side");
});
有人可以帮忙吗?
【问题讨论】:
-
它们都激活了,因为你同时点击了它们,不是吗?快速查看 bootsnav 结构,我发现 .side .close-side 基本上是锚元素的包装器。对于您的情况,一个快速解决方法是定义一个变量,侧边栏是打开还是关闭,并在删除/切换类之前检查它
标签: javascript jquery twitter-bootstrap menu sidebar