다른 버튼을 선택하면 클래스 active
이 켜지 며, active
클래스의 버튼이 다시 선택되면 버튼을 토글하는 버튼이 여러 개 있습니다 (예 : 클래스 삭제).JavaScript : querySelectorAll & classList가 예상대로 작동하지 않습니다.
또한 console.log
일 때 this
이 선택한 요소를 올바르게 반환합니다.
라인 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
나는 네가하는 말을 안다. 그래서 더 나은 접근법은 라디오 버튼을 사용하는 것입니다. 그러나 스타일을 변경하여 레이블이 스타일을 얻고 라디오 버튼 UI를 숨겨야합니다. 이 경우 버튼처럼 보입니다. –