當我點擊一個“冒名頂替者”時,我希望它變成帶有一些文本的灰色,正如您在我的 CSS 中看到的選擇器.imposter.voted。但是當我單擊另一個冒名頂替者時,我希望那個冒名頂替者顯示為灰色,而前一個冒名頂替者再次像往常一樣出現。
當我嘗試時this.classList.remove("voted")它不起作用,它只會使我選擇的所有冒名頂替者變成灰色。該類不會被洗掉。我不明白我哪里出錯了。
imposters = document.querySelectorAll(".imposter");
for (let i = 0; i < imposters.length; i ) {
imposters[i].addEventListener("click", function() {
this.classList.add("voted");
});
}
.imposter.voted {
background-color: gray;
position: relative;
opacity: 0.7;
}
.imposter.voted::after {
content: "I voted";
position: absolute;
top: 5px;
right: 5px;
display: inline-block;
font-family: "Comic Sans Ms";
color: red;
}
.imposters__voting {
text-align: right;
}
<main class="dashboard">
<h1>Who Is The Imposter?</h1>
<div class="imposters">
<div class="imposter">Baba</div>
<div class="imposter">Baraki</div>
<div class="imposter">Garfield</div>
<div class="imposter">Erik</div>
<div class="imposter">GreenBlood4</div>
<div class="imposter">Easter</div>
</div>
</main>
uj5u.com熱心網友回復:
只需.voted從所有div.imposterif 中洗掉,然后將.voted類添加到單擊的元素。
imposters = document.querySelectorAll(".imposter");
for (let i = 0; i < imposters.length; i ) {
imposters[i].addEventListener("click", function() {
var count = 0;
while(count<imposters.length){
imposters[count ].classList.remove('voted');
}
this.classList.add("voted");
});
}
.imposter.voted {
background-color: gray;
position: relative;
opacity: 0.7;
}
.imposter.voted::after {
content: "I voted";
position: absolute;
top: 5px;
right: 5px;
display: inline-block;
font-family: "Comic Sans Ms";
color: red;
}
.imposters__voting {
text-align: right;
}
<main class="dashboard">
<h1>Who Is The Imposter?</h1>
<div class="imposters">
<div class="imposter">Baba</div>
<div class="imposter">Baraki</div>
<div class="imposter">Garfield</div>
<div class="imposter">Erik</div>
<div class="imposter">GreenBlood4</div>
<div class="imposter">Easter</div>
</div>
</main>
uj5u.com熱心網友回復:
您可以記住變數中當前選定的冒名頂替者的索引currentIndex。然后點擊后你需要通過其余的冒名頂替者并洗掉類voted。
let imposters = document.querySelectorAll(".imposter");
let currentIndex = null;
for (let i = 0; i < imposters.length; i ) {
imposters[i].addEventListener("click", function() {
this.classList.add("voted");
currentIndex = i;
imposters.forEach(function(imposter, index){
if(index != currentIndex) {
imposter.classList.remove("voted");
}
});
});
}
.imposter.voted {
background-color: red;
position: relative;
opacity: 0.7;
}
.imposter.voted::after {
content: "I voted";
position: absolute;
top: 5px;
right: 5px;
display: inline-block;
font-family: "Comic Sans Ms";
color: red;
}
.imposters__voting {
text-align: right;
}
<main class="dashboard">
<h1>Who Is The Imposter?</h1>
<div class="imposters">
<div class="imposter">Baba</div>
<div class="imposter">Baraki</div>
<div class="imposter">Garfield</div>
<div class="imposter">Erik</div>
<div class="imposter">GreenBlood4</div>
<div class="imposter">Easter</div>
</div>
</main>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/371201.html
標籤:javascript html css 班级
上一篇:類繼承代碼中的意外輸出
