javascript - 单击导航栏外部时如何关闭导航栏
问题描述
如何编辑我的代码,以便在单击导航栏外部时关闭导航栏,但在单击导航栏内部的内容时保持打开状态?
$(document).ready(function() {
$('.nav-btn').on('click', function() {
$('.nav-btn').removeClass('active');
$(this).parent().find('.sub-menu').slideToggle();
$(this).toggleClass('active');
});
});
解决方案
$(document).ready(function () {
$('.nav-btn').on('click', function (e) {
// Stop Document to be clicked when clicked in nav.
e.stopPropagation()
$('.nav-btn').removeClass('active');
var subMenu = $(this).parent().find('.sub-menu')
if (!$(".sub-menu").is(":visible")) {
$(this).parent().find('.sub-menu').slideToggle();
}
$(this).toggleClass('active');
});
// Toggle Sub Menu and remove active when Any vacant place is clicked
$(this).on('click', function (event) {
$('.nav-btn').removeClass('active');
$('.nav-btn').parent().find('.sub-menu').slideToggle();
});
// Prevent View close when Sub Items is clicked
$('.sub-menu').on('click', function (e) {
e.stopPropagation()
})
});
嗨,您只需要在单击导航项时阻止文档单击,并按照上面的代码处理一些额外的事情。
您也可以在此处查看 Plunker 示例。
推荐阅读
- dart - 变量hintText TextField
- c# - 对每个方法的自定义内核/线程数并行执行两个方法
- html - 如何在 shopify 中为博客文章中的特定 div 指定独特的样式?
- android - 找不到类“android.support.v4.app.FragmentManagerImpl”
- xml - 我的查询未显示 xml 的结果
- django - Django - 带有 FormMixin 和初始的 DetailView
- android - Firestore依赖错误颤动
- html - 保证金崩溃
- javascript - 使用 html、css 和 javascript 在简单菜单中冒泡
- html - 将屏幕尺寸更改为智能手机屏幕尺寸时,背景图像无法居中