单击链接后,我在移动视图上打开和关闭菜单时遇到问题



我正试图在正在开发的网站的移动视图中创建一个菜单。

我正在尝试制作一个函数,在单击链接后关闭菜单。

网站链接:https://parlourplaces.de/HTML:

$(document).on("click",".menu", function(){
$(".menu").closest(".menu").hide();
});
* {
box-sizing: border-box;
font-weight: 500;
}
a,
a:visited,
a:hover,
a:active {
color: inherit;
text-decoration: none;
}
.outer-menu {
right: 0;
z-index: 1;
}
.outer-menu .checkbox-toggle {
position: absolute;
top: 0;
right: 0;
z-index: 2;
cursor: pointer;
width: 60px;
height: 60px;
opacity: 0;
}
.outer-menu .checkbox-toggle:checked + .hamburger > div {
transform: rotate(135deg);
}
.outer-menu .checkbox-toggle:checked + .hamburger > div:before,
.outer-menu .checkbox-toggle:checked + .hamburger > div:after {
top: 0;
transform: rotate(90deg);
}
.outer-menu .checkbox-toggle:checked + .hamburger > div:after {
opacity: 0;
}
.outer-menu .checkbox-toggle:checked ~ .menu {
pointer-events: auto;
visibility: visible;
}
.outer-menu .checkbox-toggle:checked ~ .menu > div {
transform: scale(1);
transition-duration: 0.75s;
}
.outer-menu .checkbox-toggle:checked ~ .menu > div > div {
opacity: 1;
transition: opacity 0.4s ease 0.4s;
}
.outer-menu .checkbox-toggle:checked:hover + .hamburger > div {
transform: rotate(225deg);
}
.outer-menu .hamburger {
position: absolute;
top: 16px;
right: 16px;
z-index: 1;
width: 60px;
height: 60px;
padding: 0.5em 1em;
border-radius: 0 0.12em 0.12em 0;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
}
.outer-menu .hamburger > div {
position: relative;
flex: none;
width: 100%;
height: 4px;
background: white;
transition: all 0.4s ease;
display: flex;
align-items: center;
justify-content: center;
}
.outer-menu .hamburger > div:before,
.outer-menu .hamburger > div:after {
content: '';
position: absolute;
z-index: 1;
top: -10px;
right: 0;
width: 100%;
height: 4px;
background: inherit;
transition: all 0.4s ease;
}
.outer-menu .hamburger > div:after {
top: 10px;
}
.outer-menu .menu {
position: fixed;
top: 0;
right: 0;
width: 100%;
height: 100%;
pointer-events: none;
visibility: hidden;
overflow: hidden;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
outline: 1px solid transparent;
display: flex;
align-items: center;
justify-content: center;
}
.outer-menu .menu > div {
width: 260vw;
height: 260vw;
color: white;
background: rgba(0, 0, 0, 0.85);
border-radius: 50%;
transition: all 0.4s ease;
flex: none;
transform: scale(0);
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
}
.outer-menu .menu > div > div {
text-align: center;
max-width: 90vw;
max-height: 100vh;
opacity: 0;
transition: opacity 0.4s ease;
overflow-y: auto;
flex: none;
display: flex;
align-items: center;
justify-content: center;
}
.outer-menu .menu > div > div > ul {
list-style: none;
padding: 0 1em;
margin: 0;
display: block;
max-height: 100vh;
}
.outer-menu .menu > div > div > ul > li {
padding: 0;
margin: 1em;
font-size: 24px;
display: block;
}
.outer-menu .menu > div > div > ul > li > a {
position: relative;
display: inline;
cursor: pointer;
transition: color 0.4s ease;
}
.outer-menu .menu > div > div > ul > li > a:hover {
color: #adff2f;
}
.switcher {
font-size: 20px;
padding: 10px 0px 10px 0px;
margin-top: 70px;
}
<div class="outer-menu">
<input class="checkbox-toggle" type="checkbox" />
<div class="hamburger">
<div></div>
</div>
<div class="menu">
<div>
<div>
<ul>
<li><a href="https://parlourplaces.de/#section-334-22">Wie es funktioniert</a></li>
<li><a href="https://parlourplaces.de/#section-338-22">Coworking</a></li>
<li><a href="https://parlourplaces.de/#section-38-22">Unser Studio</a></li>
<li><a href="https://parlourplaces.de/#section-342-22">Preisgestaltung</a></li>
<li><a href="https://parlourplaces.de/#section-353-22">Über uns</a></li>
<li><a href="https://parlourplaces.de/#section-6-22">Kontakt</a></li>
<center><div class="switcher"><?php echo do_shortcode("[wpml_language_selector_widget]"); ?></div></center>
</ul>
</div>
</div>
</div>
</div>

此刻这个JS";这种作品";。它关闭了菜单,但按钮不再工作。我认为;。菜单";被永久隐藏,其余类仍然可见。

知道怎么纠正吗?

很抱歉,如果我发布的代码不正确,我是这个论坛的初学者,总体来说,使用CSS和JS,一切似乎都让我不知所措:/

提前感谢您的建议!干杯

您可能想要将事件侦听器附加到链接本身并关闭菜单。你可以这样做:

$(function(){
$(".menu a").on("click", function(){
$(".menu").css('visibility', 'hidden');
});
});

这样行吗?

最新更新