У меня есть несколько кнопок, которые я хочу переключить на класс active
, когда выбрана другая кнопка, а также переключить кнопку, когда кнопка с классом active
снова выбрана (т.е. удаление класса).JavaScript: querySelectorAll и классList toggle не работают как ожидалось
Также, this
правильно возвращает выбранный элемент, когда я console.log
.
Линия this.classList.toggle('active');
добавляет класс, но не удаляет его. Любая идея почему?
var controls = document.querySelectorAll('.controls > button');
for (var i = 0; i < controls.length; i++) {
controls[i].addEventListener('click', btnClick, false);
}
function btnClick() {
[].forEach.call(controls, function(el) {
// Remmove active class from all buttons
el.classList.remove('active');
});
this.classList.toggle('active');
}
Вы, кажется, изобретаете переключатели. – Quentin
Я знаю, что вы говорите. Поэтому лучше использовать радиокнопки, но стилизовать их так, чтобы ярлык получал стилизацию, и пользовательский интерфейс переключателя должен быть скрыт? В этом случае они должны выглядеть как кнопки. –