Как в меню-аккордеон делается сворачивание неактивных пунктов меню? Чтобы один открываешь, а прежде открытый закрывался.
HTML
<ul class="accordeon">
<li><a class="btn-menu" href="#">Верхний пункт</a>
<ul class="sub-menu">
<li><a class="sub-menu__item" href="#">Первое меню 1</a></li>
<li><a class="sub-menu__item" href="#">Первое меню 2</a></li>
<li><a class="sub-menu__item" href="#">Первое меню 3</a></li>
<li><a class="sub-menu__item" href="#">Первое меню 4</a></li>
</ul>
</li>
<li><a class="btn-menu" href="#">Средний пункт</a>
<ul class="sub-menu">
<li><a class="sub-menu__item" href="#">Второе меню 1</a></li>
<li><a class="sub-menu__item" href="#">Второе меню 2</a></li>
<li><a class="sub-menu__item" href="#">Второе меню 3</a></li>
<li><a class="sub-menu__item" href="#">Второе меню 4</a></li>
</ul>
</li>
<li><a class="btn-menu" href="#">Нижний пункт</a>
<ul class="sub-menu">
<li><a class="sub-menu__item" href="#">Третье меню 1</a></li>
<li><a class="sub-menu__item" href="#">Третье меню 2</a></li>
<li><a class="sub-menu__item" href="#">Третье меню 3</a></li>
<li><a class="sub-menu__item" href="#">Третье меню 4</a></li>
</ul>
</li>
</ul>
JS
var btnMenu = document.querySelectorAll('.btn-menu'),
subMenu = document.querySelectorAll('.sub-menu'),
i, btn, sub;
for (i = 0; i < btnMenu.length; i++) {
btn = btnMenu[i];
sub = subMenu[i];
btn.addEventListener('click', menuOpen(btn, sub));
};
function menuOpen(btn, sub) {
return function (event) {
event.preventDefault();
btn.classList.toggle('btn-menu--active');
sub.classList.toggle('sub-menu--show');
};
};