Есть такая структура:
<div class="trading__nav-active" >
<nav>
<input class="RadioTab" name="odin" type="radio" id="CoinVal_1" checked="checked" onclick = 'CoinValChange("CoinVal_1");'/>
<label for="CoinVal_1" >1</label>
<input class="RadioTab" name="odin" type="radio" id="CoinVal_2" onclick = 'CoinValChange("CoinVal_2");'/>
<label for="CoinVal_2">2</label>
</nav>
</div>
Как сделать, чтобы каждый раз при клике на label, текущий элемент подсвечивался или выделялся цветом, а предыдущий возвращался в исходное состояние?
Тут просто напрашивается CSS...
/* .RadioTab {display: none;} */
label {
display: inline-block;
width: 100px;
background-color: #ddd;
padding: 5px;
text-align: center;
cursor: pointer;
}
.RadioTab:checked + label {
border-bottom: 3px solid orange;
}
<div class="trading__nav-active">
<nav>
<input class="RadioTab" name="odin" type="radio" id="CoinVal_1" checked="checked">
<label for="CoinVal_1">1</label>
<input class="RadioTab" name="odin" type="radio" id="CoinVal_2">
<label for="CoinVal_2">2</label>
</nav>
</div>
А на JS можно записать так, уже независимо от радиокнопок:
let test = document.querySelectorAll('.test'); // Возвращает список элементов
let lastClicked = test[0]; // Первый элемент из списка (счет начинается с нуля)
for( let i = 0; i < test.length; i++ ){
// Цикл берет и кругами выполняет код. На каждом круге, i является конкретным числом.
// Добавляется событие 'клик' на test[0], потом test[1], test[2]...
test[i].addEventListener('click', function(){
lastClicked.classList.remove('active');
this.classList.add('active');
// Убрали класс с предыдущего кликнутого элемента, добавили на текущий
lastClicked = this;
// Обновили значение переменной - теперь она ссылается на текущий элемент.
// Чтобы на следующем клике, убрать класс уже с этого.
});
}
.test {
display: inline-block;
width: 100px;
background-color: #ddd;
padding: 5px;
text-align: center;
cursor: pointer;
}
.test.active {
border-bottom: 3px solid orange;
}
<label class="test">1</label>
<label class="test">2</label>
<label class="test">3</label>
<label class="test">4</label>
<label class="test">5</label>
Учебник JS → http://learn.javascript.ru/
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
при нажатии на верхний ряд или нижний, выдает ошибку (Uncaught TypeError: Cannot read property '3' of undefined), и кубик не передвигается
У меня есть массив
Есть у меня большой текст и моя задача в том чтобы при вводе что-то в поле ввода программа начала искать совпадения с текстом и возвращала...
У меня в диалогом окне есть 5 элементов xaml texbox у каждый элемент имеет свою валидацию