@anmkh

Как сделать раскрытие подменю js?

Помогите, пожалуйста добить скрипт

Сейчас этот код работает нормально только если 2 уровня вложенности меню, не как не достучусь до 3 уровня. На 3 уровне не добавляется класс active
let menuLinks = document.querySelectorAll(".menu__child");
    // проверка если элементы существуют (через длину)
    if (menuLinks.length > 0) {
        // идем в цикле
        for (let index = 0; index < menuLinks.length; index++) {
            const menuLink = menuLinks[index];
            // условие для отмены действия по умолчанию
            menuLink.addEventListener("click", function (e) {
                if (e.target.classList.contains("menu__sub_link") || e.target.closest(".menu__sub_link")) {
                    // если нажата ссылка в подменю, то предотвращаем действие по умолчанию только для нее
                    return;
                }
                e.preventDefault(); // отменяем действие по умолчанию
                menuLink.classList.toggle("_active");
            });
        }
    }
}
  • Вопрос задан
  • 122 просмотра
Решения вопроса 1
Kentavr16
@Kentavr16
long cold winter
menuLink.addEventListener("click", function (e) {
                e.stopPropagation(); // замени preventDefault на это
                menuLink.classList.toggle("_active");
            });

Код жесть конечно.
Помогло - отметь решением.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы