h5 開発 Web サイト - jquery を使用して 2 層のネストされた左側のリストと、クリック後に右側にコンテンツを表示する効果を実装します。

1. 要件:

jquery を使用して、左側に 2 レベルのネストされたリストを実装し、クリックすると右側にコンテンツが表示されます。
ここに画像の説明を挿入します

2. アイデア:

  1. クリック イベント ハンドラーは、第 1 レベルのリスト項目と第 2 レベルのサブリスト項目に追加されます。
  2. 第 1 レベルのリスト項目をクリックすると、.slideToggle() メソッドを使用して、対応する第 2 レベルのサブリスト項目を展開または折りたたむことができます。
  3. 第 2 レベルのサブリスト項目がクリックされたとき、event.stopPropagation() メソッドを使用してイベントのバブリングを防ぎ、data-target 属性の値に従って対応する適切なコンテンツ要素を取得し、.show () メソッドを使用して表示します。また、他の右側のコンテンツ要素も非表示にします。

3. コード:

<!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>

OK完了

ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/weixin_48596030/article/details/132742284
おすすめ