javascript - 单击外部时隐藏 Bootstrap 侧导航栏
问题描述
我有这个left side bar
,我想要的是side nav
在它外面点击时关闭。
我的side nav
JavaScript 代码
//side-nav is the class of my side nav
//leftmenutrigger is my button on nav bar the toggles the side nav
任何建议都可以。甚至 javascript 或 css 只是为了隐藏我的侧导航栏。
我的导航栏和左侧导航条码
$( document ).ready(function() {
$('.leftmenutrigger').on('click', function(e) {
$('.side-nav').toggleClass("open");
e.preventDefault();
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<nav class="navbar header-top sticky-top navbar-expand-lg navbar-light bg-light" >
<span class="navbar-toggler-icon leftmenutrigger"></span> <!--THIS IS THE BUTTON THAT TOGGLES-->
<a class="navbar-brand" href="#">
<img src="images/nexuslogo.png" style="width: 40px; height: 40px;padding: 0px; margin: 0px;">
</a>
<a class="navbar-brand" id="comp_name" name="comp_name"> Nexus Technologies, Inc.</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarText" aria-controls="navbarText"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon" ></span> </button>
<div class="collapse navbar-collapse" id="navbarText" name="navbarText" > //SIDE NAV BAR ITEMS
<ul class="navbar-nav animate side-nav ">
<li class="nav-item">
<a href="" id="addUser" name="addUser" style="width: 100%">
<i class="fa fa-plus-circle"></i> Add User
</a>
<a href="manageprize.php" id="manage_prize" name="manage_prize" style="width: 100%" target="_self">
<i class="fa fa-table"></i> Manage Prizes
</a>
</li>
</ul>
</div>
</nav>
谢谢!!!!
解决方案
这是Bootstrap 3中的示例:
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Link <span class="sr-only">(current)</span></a></li>
<li><a href="#">Link</a></li>
</ul>
</div>
</div>
</nav>
和适用于我的JS 代码:
- .navbar-collapse以外的任何地方:
$("body").click(function (event) {
var target = $(event.target);
var navbarCollapse = $(".navbar-collapse");
var navbarCollapseOpened = navbarCollapse.hasClass("in");
if (navbarCollapseOpened && !target.hasClass("navbar-toggle")) {
navbarCollapse.collapse("hide");
}
});
- .navbar以外的任何地方:
$("body").click(function (event) {
var navigation = $(event.target).parents(".navbar").length;
if(!navigation) {
$(".navbar .navbar-collapse").collapse("hide");
}
});
推荐阅读
- laravel - laravel 中的更新方法问题(不支持 POST 方法)
- angular - 如何获取打字稿对象的属性
- python - 在 .insert_picture() 之后访问 python-pptx 图片占位符时出错
- python - 如何将推荐 Keras 模型从 Tensorflow 示例导出到 tflite?
- reactjs - 使用 react-spring,如何在不提供“from”值的情况下使用“useSpring()”进行动画处理?
- java - 如何使用通用方法获取实例
- android - 如何在 android sharesheet 中显示应用程序的多个活动?
- javascript - obj1 在深度比较算法中未定义
- angular - Angular - 如何以编程方式更新 URL 参数
- python - 为什么显示列表索引超出范围错误?