Javascript 移动菜单仅在第二次单击时打开,在我滚动时关闭
我用一个子菜单制作了这个简单的响应菜单。但是当我在手机上单击“触发器”时,它不会第一次打开,我必须再次单击它。然后,当我想向下滚动菜单时,它会关闭 HTML:`Javascript 移动菜单仅在第二次单击时打开,在我滚动时关闭,javascript,mobile,Javascript,Mobile,我用一个子菜单制作了这个简单的响应菜单。但是当我在手机上单击“触发器”时,它不会第一次打开,我必须再次单击它。然后,当我想向下滚动菜单时,它会关闭 HTML:` <a href="" class="mobile-trigger">Nav Trigger<span aria-hidden="true"></span></a> <div class="nav-main__inner"> <nav class=
<a href="" class="mobile-trigger">Nav Trigger<span aria-hidden="true"></span></a>
<div class="nav-main__inner">
<nav class="nav-main__top cf">
<ul class="nav-main__left">
<li class="nav-main__item"><a class="item__link item__link--bold" href="">Link</a></li>
<li class="nav-main__item"><a class="item__link item__link--bold" href="">Link</a></li>
<li class="nav-main__item"><a class="item__link item__link--bold" href="">Link</a></li>
<li class="nav-main__item"><a class="item__link item__link--bold" href="">Link</a></li>
<li class="nav-main__item"><a class="item__link item__link--bold" href="">Link</a></li>
<li class="nav-main__item"><a class="item__link item__link--bold" href="">Link</a></li>
<li class="nav-main__item"><a class="item__link item__link--bold" href="">Link</a></li>
<li class="nav-main__item"><a class="item__link item__link--bold" href="">Link</a></li>
<li class="nav-main__item"><a class="item__link item__link--bold" href="">Link</a></li>
</ul>
<ul class="nav-main__right">
<li class="nav-main__item"><a class="item__link item__link--medium" href="">Link</a></li>
<li class="nav-main__item"><a class="item__link item__link--medium" href="">Link</a></li>
<li class="nav-main__item has-submenu"><a class="item__link item__link--medium" href="">Link</a>
<ul class="submenu">
<li class="submenu__item"><a href="" class="submenu__link">Link sub</a></li>
<li class="submenu__item"><a href="" class="submenu__link">Link sub</a></li>
<li class="submenu__item"><a href="" class="submenu__link">Link sub</a></li>
<li class="submenu__item"><a href="" class="submenu__link">Link sub</a></li>
<li class="submenu__item"><a href="" class="submenu__link">Link sub</a></li>
<li class="submenu__item"><a href="" class="submenu__link">Link sub</a></li>
</ul>
</li>
</ul>
</nav>`
-
`
Javascript:
$(document).ready(function(){
var trigger = $('.mobile-trigger');
var subm = $('.submenu');
var navInner = $('.nav-main__inner');
function mmenu(){
var wi = $(window).width();
if(wi < 992) {
trigger.on('click', function(e){
e.preventDefault();
trigger.toggleClass('nav-open');
navInner.toggleClass('show');
if (subm.hasClass('show')) {
subm.removeClass('show');
}
});
$('.has-submenu > a').on('click', function(e){
e.preventDefault();
subm.toggleClass('show');
});
}
$(window).resize(function(){
navInner.removeClass('show');
trigger.removeClass('nav-open');
});
}
mmenu();
});`
$(文档).ready(函数(){
var trigger=$('.mobile trigger');
var subm=$('.submenu');
var navInner=$('.nav-main_uuu-inner');
函数mmenu(){
var wi=$(window.width();
如果(wi<992){
在('click',函数(e)上触发{
e、 预防默认值();
触发器。切换类('nav-open');
navInner.toggleClass(“显示”);
if(subm.hasClass('show')){
子M.removeClass(“显示”);
}
});
$('.has子菜单>a')。在('click',函数(e){
e、 预防默认值();
子M.toggleClass(“显示”);
});
}
$(窗口)。调整大小(函数(){
navInner.removeClass(“显示”);
触发器。removeClass('nav-open');
});
}
mmenu();
});`
页面加载过程中会出现窗口。调整大小
事件。它将在您的document.ready
JQuery函数之外启动。因此,此代码将在页面首次加载时运行:
navInner.removeClass('show');
trigger.removeClass('nav-open');
如果您想根据视口大小或设备方向显示/隐藏某些页面元素,请使用。FYI-
窗口。在初始页面加载过程中会触发resize
。因此,我想在这里做些更改??删除preventDefault()
@arias\u JC无法删除preventDefault()不会work@ScottMarcus如果我删除了窗口。调整大小都很好,但是如果窗口调整了大小或者手机方向改变了,我该如何关闭菜单呢?