【发布时间】:2021-11-19 22:04:56
【问题描述】:
我有一个简单的部分,默认包含五个元素,第一个元素背景是红色(活动元素)现在我希望当您单击任何剩余元素以将背景颜色更改为红色,其余元素为白色使用 vanilla js 的背景颜色。
问题:当我点击任何剩余元素设置为红色但前一个活动元素仍然是红色; live demo
我的解决方案
HTML
<div id="panels">
<div class="panel active">First</div>
<div class="panel">second</div>
<div class="panel">third</div>
<div class="panel">fouth</div>
<div class="panel">Fith</div>
</div>
CSS
#面板{ 显示:弯曲; 证明:空间之间; 对齐项目:中心 }
.panel{
display: flex;
justify-content: space-between;
align-items: center;
width: 100px;
height: 100px;
background: white;
color: black;
font-size: 24px;
text-align: center;
margin: 0px auto;
cursor: pointer;
}
.active{
background: red;
}
Js
var panel = document.getElementById('panels'); // Parent
panel.addEventListener('click', function (e) {
var target = e.target; // Clicked element
while (target && target.parentNode !== panel) {
target = target.parentNode; // If the clicked element isn't a direct child
if (!target) { return; } // If element doesn't exist
}
if (target.tagName === 'DIV') {
target.classList.toggle('active');
} else {
console.log('love')
}
});
我需要在此处进行哪些更改才能使其正常工作?
【问题讨论】:
标签: javascript html css