Как сохранить цвет по нажатию на блок?
Подскажите, пожалуйста, как сделать так, чтобы по нажатию на блок цвет менял своё значение и возвращался к исходному значению если нажать на другой блок. Сделал текущую задачу с помощью псевдокласса active, но когда нажимаю на другой блок, то цвет кнопки не становится прежним
Пример кода:
.void_history {
display: flex;
flex-direction: column;
}
.void_history-item {
width: 200px;
height: 50px;
background: #248a52;
border: 1px solid #006633;
border-radius: 10px;
display: flex;
align-items: center;
justify-content: center;
margin-top: 20px;
color: white;
transition: background 9999999s;
}
.void_history-item:active {
background: red;
transition: background 0s;
}
<div class="void_history">
<div class="void_history-item">Первый выбор</div>
<div class="void_history-item">Второй выбор</div>
<div class="void_history-item">Третий выбор</div>
<div class="void_history-item">Четвёрты выбор</div>
</div>
Ответы (1 шт):
Автор решения: Хмельни́цький
→ Ссылка
let a = document.querySelectorAll('.void_history-item');
let b = document.querySelector('.void_history');
b.addEventListener('click', e => {
if (e.target.className == 'void_history-item') {
for(let c of a){
c.style.background = '';
}
e.target.style.background = e.target.dataset.color;
}
});
.void_history {
display: flex;
flex-direction: column;
}
.void_history-item{
width: 200px;
height: 50px;
background: #248a52;
border: 1px solid #006633;
border-radius: 10px;
display: flex;
align-items: center;
justify-content: center;
margin-top: 20px;
color: white;
}
<div class="void_history">
<div class="void_history-item" data-color="red">1</div>
<div class="void_history-item" data-color="red">2</div>
<div class="void_history-item" data-color="red">3</div>
<div class="void_history-item" data-color="red">4</div>
</div>