我正在尝试制作一个单击时折叠的菜单。我还想在同一功能上添加更多更改。例如,我想更改另一个对象的背景。
在此代码段中,您可以看到它仅适用于第一个链接。其他可切换链接不是目标。
var pill = document.querySelector(".navpill");
var sub = document.querySelector(".submenu");
pill.onclick = () => {
sub.classList.toggle("collapse");
pill.classList.toggle("active");
}
.mainmenu {
background-color: #1f1f1f;
}
.navpill {
padding: 15px;
}
.navpill.active {
background: red;
}
.navpill a {
text-decoration: none;
color: white;
}
.submenu {
display: none;
}
.submenu.collapse {
display: block;
}
<div>
<ul class="mainmenu">
<li class="navpill"><a href="#">Link collapse 1</a>
<ul class="submenu">
<li class="navpill"><a href="#">sub Link 1</a></li>
<li class="navpill"><a href="#">sub Link 1</a></li>
<li class="navpill"><a href="#">sub Link 1</a></li>
<li class="navpill"><a href="#">sub Link 1</a></li>
</ul>
</li>
<li class="navpill"><a href="#">Link collapse 2</a>
<ul class="submenu">
<li class="navpill"><a href="#">sub Link 1</a></li>
<li class="navpill"><a href="#">sub Link 1</a></li>
<li class="navpill"><a href="#">sub Link 1</a></li>
</ul>
</li>
<li class="navpill"><a href="#">no link</a></li>
<li class="navpill"><a href="#">no link</a></li>
</ul>
</div>
从先前的答案中,我得到了这段代码,它可以在所有链接上运行,但我不知道如何添加更多 var 并切换到函数。
var pills = document.querySelectorAll(".expand");
pills.forEach(function(pill) {
pill.onclick = () => {
var sub = pill.querySelector(".submenu");
sub.classList.toggle("collapse");
}
});
我尝试将此添加到代码中,但它不起作用。
var navpill = pill.querySelector(".navpill");
navpill.classList.toggle("active");
如果可能的话,我还想要一种方法来清除单击下一个子菜单时所做的事情。
如果我使用上面的代码。当我单击第二个链接时,它保持打开状态,然后它们都打开了。如果单击第二个,我希望第一个关闭。