javascript - 单击外部菜单时关闭下拉菜单
问题描述
我有以下
function subNavToggle() {
var subNav = document.getElementById("subnav-section");
if (subNav.className === "navigation-subnav") {
subNav.className += " responsive";
} else {
subNav.className = "navigation-subnav";
}
}
我试图在单击菜单外部时关闭扩展菜单。
我有这个,它会关闭菜单,但它也会关闭汉堡菜单 - 阻止用户再次打开。
$(document).click(function(event) {
var $target = $(event.target);
if(!$target.closest('.sub_nav_links').length &&
$('.sub_nav_links').is(":visible")) {
$('.sub_nav_links').hide();
}
});
还以为我可以摆脱以下情况,但实际上恰恰相反。打开外部菜单项。
window.onclick = subNav;
解决方案
$('html').on('click, touchend', function (e) {
// Close hamburger menu when tapping outside
if ($(e.target).closest('#subnav-section').length == 0) {
var opened = $('.navigation-subnav').hasClass('responsive');
if (opened === true) {
$('.navigation-subnav').collapse('hide');
}
}
});
推荐阅读
- excel - 范围变量按行与数字
- mysql - 表中的人是否满足以下条件
- c# - 将cultureinfo 设置为listview xamarin 表单?
- html - 无法在 R Shiny App 中渲染 Mp4 视频
- python - 混合 HTML 和 Python 代码 - 如何在 HTML 代码中引用不断变化的文件名
- python - 熊猫不识别“||” 作为要拆分的字符串
- powerquery - Power Query:自定义列名中的撇号
- excel - 将一列复制到另一个工作簿 VBA 的另一列的最后一个空单元格
- python - 我该如何解决这个问题,x 不在列表中
- haskell - Stack 尚未使用 GHC 和 Cabal 版本进行测试