【发布时间】:2022-02-22 13:42:24
【问题描述】:
我的任务是制作 7 个嵌套的 div,这样被点击的 div 应该将其颜色更改为白色,而所有被点击的 div 的上层 div 应该将其颜色更改为橙色。而所有较低的 div 应将其颜色更改为绿色。
$(".div").click(function() {
$(this).css({
"background-color": "white"
});
$(this).parents().css({
"background-color": "orange"
});
$(this).children().css({
"background-color": "green"
});
});
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<title>Document</title>
<style>
div {
border: 2px solid black;
margin: 30px 20px;
}
</style>
</head>
<body>
<div id="main">
<div class="div" id="1">
<div class="div" id="2">
<div class="div" id="3">
<div class="div" id="4">
<div class="div" id="5">
<div class="div" id="6">
<div class="div" id="7">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
【问题讨论】:
-
-
将
$(".div").click(function() {更改为$(".div").click(function(e) {,以捕获点击事件。然后添加e.stopPropagation();以停止答案中给出的 event.explanation 的冒泡效果。
标签: javascript html jquery