Я пытаюсь сделать простой аккордеон, используя html и javascript. Вот мой HTML-код:Скрыть другие элементы в аккордеоне javascript
<button class="accordion" id="part_one">Part One</button>
<div class="panel">
</div>
<button class="accordion" id="part_two">Part Two</button>
<div class="panel">
</div>
И сценарий:
<script>
var acc = document.getElementsByClassName("accordion");
var i;
for (i = 0; i < acc.length; i++) {
acc[i].onclick = function(){
this.classList.toggle("active");
this.nextElementSibling.classList.toggle("show");
}
}</script>
Он работает все в порядке. Но мне было интересно, есть ли простой и быстрый способ скрыть другие части аккордеона при щелчке по одному, чтобы убедиться, что всегда отображается только один блок. Поскольку на данный момент, если я нажимаю на каждую кнопку, я могу отображать все одновременно, но мне это не нравится.
Заранее благодарим за вашу помощь! :)
, прежде чем переключить активный класс, удалить весь активный класс по .panel – slashsharp
Здесь в 'onclick' метода просто удалить' active' класс из всех элементов флуд 'accordion' class.And после этого добавьте 'активный' класс в' this', т.е. элемент, который вы сейчас нажали. – Sarju