【发布时间】:2022-01-26 06:41:39
【问题描述】:
我正在尝试更改所有 div 一旦被点击的背景颜色。此代码允许更改发生,但我可以单击相同的 div 3 次并获得相同的输出。任何人都知道一个好的解决方案吗?谢谢!
var boxes = document.querySelectorAll('.boxes')
var box1 = document.querySelector('#box1')
var box2 = document.querySelector('#box2')
var box3 = document.querySelector('#box3')
var clickCounter = 0
function handleColor (box){
box.style.backgroundColor = 'red';
clickCounter = clickCounter + 1
console.log(clickCounter);
if (clickCounter > 2) {
reset()
}
}
for (let i = 0; i < boxes.length; i++) {
boxes[i].addEventListener("click", () => handleColor(boxes[i]));
}
function reset() {
box1.style.backgroundColor = 'green'
box2.style.backgroundColor = 'green'
box3.style.backgroundColor = 'green'
}
.boxes {
width: 200px;
height: 200px;
outline: 1px solid black;
}
<div class="boxes" id="box1"></div>
<div class="boxes" id="box2"></div>
<div class="boxes" id="box3"></div>
【问题讨论】:
-
您的问题是模棱两可的:“一旦点击了所有 div,就更改它们的背景颜色”可能意味着一旦 any 更改 all div单击,或仅在所有被单击一次 - 或介于两者之间的任何内容。请澄清。
标签: javascript css