原生JavaScript实现的树形菜单代码通常涉及到DOM操作和事件处理。下面是一个简单的树形菜单示例,包括展开和折叠功能。
以下是一个简单的树形菜单实现,包含展开和折叠功能:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Tree Menu Example</title>
<style>
ul {
list-style-type: none;
padding-left: 20px;
}
.hidden {
display: none;
}
</style>
</head>
<body>
<ul id="treeMenu">
<li>
<span class="toggle">+</span> Menu 1
<ul class="hidden">
<li>Submenu 1.1</li>
<li>Submenu 1.2</li>
</ul>
</li>
<li>
<span class="toggle">+</span> Menu 2
<ul class="hidden">
<li>Submenu 2.1</li>
<li>Submenu 2.2</li>
</ul>
</li>
</ul>
<script>
document.addEventListener('DOMContentLoaded', function() {
var toggles = document.querySelectorAll('.toggle');
toggles.forEach(function(toggle) {
toggle.addEventListener('click', function() {
var submenu = this.nextElementSibling;
if (submenu.classList.contains('hidden')) {
submenu.classList.remove('hidden');
this.textContent = '-';
} else {
submenu.classList.add('hidden');
this.textContent = '+';
}
});
});
});
</script>
</body>
</html>
<ul>
和<li>
元素来构建树形结构。.hidden
类用于控制子菜单的显示和隐藏。.toggle
元素添加点击事件监听器。.hidden
类,并更新+
或-
符号。event.stopPropagation()
来阻止事件冒泡。通过上述代码和解释,你应该能够理解原生JavaScript实现树形菜单的基础概念、优势、类型、应用场景以及常见问题解决方法。
领取专属 10元无门槛券
手把手带您无忧上云