1. Requirements:
Use jquery to implement a two-level nested list on the left, which displays the content on the right after clicking.
2. Ideas:
- Click event handlers are added for the first-level list items and the second-level sub-list items.
- When a first-level list item is clicked, use the .slideToggle() method to expand or collapse the corresponding second-level sublist item.
- When the secondary sublist item is clicked, use the event.stopPropagation() method to prevent the event from bubbling, obtain the corresponding right content element based on the value of the data-target attribute, and use the .show() method to display it. Also hides other right content elements.
3. Code:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/jquery.min.js"></script>
<style>
.container {
display: flex;
}
.left-panel {
width: 30%;
background-color: #f2f2f2;
}
.left-list {
list-style: none;
padding: 0;
margin: 0;
}
.list-item {
padding: 10px;
cursor: pointer;
}
.sub-list {
list-style: none;
padding: 0;
margin: 10px 0 0 20px;
}
.sub-item {
padding: 5px;
cursor: pointer;
}
.right-panel {
flex: 1;
background-color: #fff;
}
.content {
display: none;
padding: 20px;
}
</style>
</head>
<body>
<div class="container">
<div class="left-panel">
<ul class="left-list">
<li class="list-item">
项目1
<ul class="sub-list">
<li class="sub-item" data-target="content1">子项目1</li>
<li class="sub-item" data-target="content2">子项目2</li>
<li class="sub-item" data-target="content3">子项目3</li>
</ul>
</li>
<li class="list-item">
项目2
<ul class="sub-list">
<li class="sub-item" data-target="content4">子项目4</li>
<li class="sub-item" data-target="content5">子项目5</li>
<li class="sub-item" data-target="content6">子项目6</li>
</ul>
</li>
<li class="list-item">
项目3
<ul class="sub-list">
<li class="sub-item" data-target="content7">子项目7</li>
<li class="sub-item" data-target="content8">子项目8</li>
<li class="sub-item" data-target="content9">子项目9</li>
</ul>
</li>
</ul>
</div>
<div class="right-panel">
<div class="content" id="content1">
<!-- 右侧内容1 -->1
</div>
<div class="content" id="content2">
<!-- 右侧内容2 -->2
</div>
<div class="content" id="content3">
<!-- 右侧内容3 -->3
</div>
<div class="content" id="content4">
<!-- 右侧内容4 -->4
</div>
<div class="content" id="content5">
<!-- 右侧内容5 -->5
</div>
<div class="content" id="content6">
<!-- 右侧内容6 -->6
</div>
<div class="content" id="content7">
<!-- 右侧内容7 -->7
</div>
<div class="content" id="content8">
<!-- 右侧内容8 -->8
</div>
<div class="content" id="content9">
<!-- 右侧内容9 -->9
</div>
</div>
</div>
<script>
$(document).ready(function() {
$('.list-item').click(function() {
$(this).siblings().find('.sub-list').slideUp();
$(this).find('.sub-list').slideToggle();
});
$('.sub-item').click(function(event) {
event.stopPropagation();
var target = $(this).data('target');
$('.content').hide();
$('#' + target).show();
});
});
</script>
</body>
</html>