在点击时关闭其他子菜单,可以通过以下步骤实现:
以下是一个示例代码:
HTML:
<div class="menu">
<div class="submenu">子菜单1</div>
<div class="submenu">子菜单2</div>
<div class="submenu">子菜单3</div>
</div>
JavaScript:
// 获取所有子菜单元素
var submenus = document.getElementsByClassName('submenu');
// 给每个子菜单添加点击事件监听器
for (var i = 0; i < submenus.length; i++) {
submenus[i].addEventListener('click', function() {
// 遍历所有子菜单元素
for (var j = 0; j < submenus.length; j++) {
// 判断当前子菜单是否为被点击的子菜单
if (submenus[j] === this) {
// 保持该子菜单的状态为打开
submenus[j].classList.add('active');
} else {
// 关闭其他子菜单
submenus[j].classList.remove('active');
}
}
});
}
// 在点击其他地方时关闭所有子菜单
document.addEventListener('click', function(event) {
var target = event.target;
// 判断点击的目标是否为子菜单或子菜单的父元素
if (!target.classList.contains('submenu') && !target.classList.contains('menu')) {
// 关闭所有子菜单
for (var k = 0; k < submenus.length; k++) {
submenus[k].classList.remove('active');
}
}
});
CSS:
.submenu {
display: none;
}
.submenu.active {
display: block;
}
在上述示例代码中,我们给每个子菜单元素添加了一个名为"submenu"的类,并且使用CSS将其默认隐藏。在点击事件的处理函数中,通过判断当前子菜单是否为被点击的子菜单,来决定是保持该子菜单的状态为打开,还是关闭其他子菜单。最后,我们通过在document上添加点击事件监听器,来实现在点击其他地方时关闭所有子菜单的功能。
请注意,上述示例代码仅为演示如何在点击时关闭其他子菜单,并不包含实际的菜单样式和具体的应用场景。在实际开发中,您需要根据具体的需求和设计来进行相应的修改和调整。
领取专属 10元无门槛券
手把手带您无忧上云