Уважаемые, нужен ваш опыт.
Есть многоуровневое меню, где к классам присваиваются дополнительные классы, через скрипт. Сам скрипт парсит код и создает массив, к элементам, которого присваиваются при клике дополнительные классы. Все бы хорошо, НО addEventListener, навешивает события, только на последний элемент массива. Подскажите как это исправить?
Строго не корите, учусь только.
var arrow=document.querySelectorAll('.arrow');
for (var i=0; i<arrow.length; i++){
var thisLink=arrow[i].previousElementSibling;
var subMenu=arrow[i].nextElementSibling;
var thisArrow=arrow[i];
thisLink.classList.add('parent');
thisArrow.addEventListener('click', function(){
subMenu.classList.toggle('open');
thisArrow.classList.toggle('active');
});}
<nav class="main-nav">
<ul class="main-nav__list">
<li>
<a href="#" class="main-nav__link">Первый уровень</a>
<span class="menu-nav-arrow arrow"></span>
<ul class="sub-main-nav__list">
<li>
<a href="#" class="sub-main-nav__link">Второй уровень</a>
</li>
<li>
<a href="#" class="sub-main-nav__link">Второй уровень</a>
<!-- <span class="sub-menu-nav-arrow arrow"></span> -->
<ul class="sub-sub-main-nav__list">
<li>
<a href="#" class="sub-sub-main-nav__link">Третий уровень</a>
</li>
<li>
<a href="#" class="sub-sub-main-nav__link">Третий уровень</a>
</li>
</ul>
</li>
</ul>
</li>
<li>
<a href="#" class="main-nav__link">Первый уровень</a>
<span class="menu-nav-arrow arrow"></span>
<ul class="sub-main-nav__list">
<li>
<a href="#" class="sub-main-nav__link">Второй уровень</a>
</li>
</ul>
</li>
<li>
<a href="#" class="main-nav__link">Первый уровень</a>
</li>
</ul>
</nav>
for (var i=0;наfor (let i=0;и будет счастье – Алексей Шиманский Apr 26 '21 at 18:10let thisArrow ...– Apr 26 '21 at 18:10