У меня есть pure CSS accordion и хотел бы добавить некоторые функции для людей, у которых есть JavaScript. Аккордеон CSS работает с: проверенным псевдоклассом.JS uncheck radiobutton делает все непроверенным
Новая функциональность: Если снова нажата активная кнопка, все должно рухнуть. Пожалуйста, нет JS-библиотек, таких как jQuery.
Он работает в первый раз, когда щелкнул первоначально незаваленный предмет. Но тогда все кнопки, похоже, выполняют .checked===true
. Невозможно проверить элемент больше.
Here is a JSFiddle и это JS (пожалуйста, смотрите за глупые ошибки - я новичок JS):
function uncheck() {
if(this.checked) {
this.checked = false;
}
}
var elements = document.getElementsByClassName("js-uncheck");
for (var i=0; i<elements.length; i++) {
elements[i].addEventListener("click", uncheck, false);
}
Я также открыт для изменения CheckBox (уже безуспешно испытано вокруг немного) , пока только один элемент не разворачивается за раз (радиобутоподобный). Адрес a Fiddle to play around с флаговыми флажками.
Это прекрасно работает! Я один пункт выбран по умолчанию и добавить класс. Так более или менее решение не является полагаться на статус '.checked', но отмечать его отдельным классом. Спасибо! – Stony
ну, вы можете положиться на статус .checked, но посмотрите на это ... проблема в том, что к моменту запуска вашей функции ... блоки уже проверены. так что это проблема с курицей и яйцом, которая была первой - щелчок или чек, чтобы проверить, было ли это нажато ... в исходном посте, когда вы проверили, они всегда были нажаты - так что вы всегда выключали клик , класс - это способ «вернуться во времени» как есть. – WEBjuju