У меня есть вертикальное меню с выпадающим списком. На самом деле больше раскрывающихся списков нельзя открыть одновременно, и, если раскрывающийся список открыт, когда я нажимаю на другую раскрывающуюся кнопку, раскрывающийся список закрывается сам.
Здесь вы можете увидеть демонстрацию .
Проблема в том, что теперь, если дважды щелкнуть одну и ту же кнопку раскрывающегося меню, при первом открытии раскрывающегося окна (как и должно быть) откроется само окно, , но второй раз раскрывающийся список не закрывает сам, как я хочу.
Кроме того, также, когда раскрывающийся список открыт и я нажимаю на другую кнопку в меню, раскрывающийся список не закрывается сам по себе.
Здесь вы можете увидеть мой код:
<div class="sidenav">
<a href="#about">About</a>
<a href="#services">Services</a>
<a href="#clients">Clients</a>
<a href="#contact">Contact</a>
<button class="dropdown-btn">Dropdown
<i class="fa fa-caret-down"></i>
</button>
<div class="dropdown-container">
<a href="#">Link 1</a>
<a href="#">Link 2</a>
<a href="#">Link 3</a>
</div>
<button class="dropdown-btn">Dropdown
<i class="fa fa-caret-down"></i>
</button>
<div class="dropdown-container">
<a href="#">Link 1</a>
<a href="#">Link 2</a>
<a href="#">Link 3</a>
</div>
<a href="#contact">Search</a>
</div>
var accItem = document.getElementsByClassName('dropdown-container');
var accHD = document.getElementsByClassName('dropdown-btn');
for (i = 0; i < accHD.length; i++) {
accHD[i].addEventListener('click', toggleItem, false);
}
function toggleItem() {
var itemClass = this.nextElementSibling;
for (i = 0; i < accItem.length; i++) {
accItem[i].style.display = "none";
accHD[i].classList.remove("active");
}
if (itemClass.style.display === "none") {
this.classList.add("active");
//this.classList.toggle("active");
this.nextElementSibling.style.display = "block";
}
}
Кто-то может найти, где проблема и решить ее?
Спасибо, с уважением
(Надеюсь, понятно, если нет, дайте мне знать в комментариях. Я не очень хорошо говорю по-английски sh.)