jQuery树形三级导航是一种使用jQuery库实现的网页导航结构,通常用于展示具有层级关系的数据。这种导航结构可以清晰地展示多级菜单,使用户能够方便地浏览和选择不同的内容。
以下是一个简单的jQuery树形三级导航的示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>jQuery Tree Navigation</title>
<style>
ul {
list-style-type: none;
padding-left: 20px;
}
.hidden {
display: none;
}
</style>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<ul class="tree">
<li>
Level 1
<ul class="hidden">
<li>
Level 2.1
<ul class="hidden">
<li>Level 3.1</li>
<li>Level 3.2</li>
</ul>
</li>
<li>Level 2.2</li>
</ul>
</li>
<li>Level 1.2</li>
</ul>
<script>
$(document).ready(function() {
$('.tree > li').click(function() {
$(this).find('ul').toggleClass('hidden');
});
});
</script>
</body>
</html>原因:可能是由于事件冒泡导致的,点击展开后,事件继续冒泡到父元素,导致父元素也展开。
解决方法:
$(document).ready(function() {
$('.tree > li').click(function(event) {
event.stopPropagation(); // 阻止事件冒泡
$(this).find('ul').toggleClass('hidden');
});
});原因:移动设备上的触摸事件与鼠标事件不同,需要使用触摸事件来处理。
解决方法:
$(document).ready(function() {
$('.tree > li').on('click touchstart', function(event) {
event.preventDefault(); // 阻止默认行为
$(this).find('ul').toggleClass('hidden');
});
});通过以上方法,可以解决树形导航在展开后无法收起和在移动设备上无法正常工作的问题。