@anmkh

Как отменить действие preventDefault у дочерних элементов?

Есть меню
// Меню по клику в шапке
document.addEventListener('DOMContentLoaded', () => {

  const submenuItem = document.querySelectorAll(".header .menu-item-has-children");
  const menuBody = document.querySelector(".header .sub-menu");

  submenuItem.forEach((item) => { 
      item.addEventListener('click', handlerItem);
      
      // слушаем клик вне меню
      document.addEventListener("click", function (e) {
        const target = e.target;
        const its_menu = target == menuBody || menuBody.contains(target);
        const its_btnMenu = target == menuBody;
        const menu_is_active = item.classList.contains("--show");
    
        if (!its_menu && !its_btnMenu && menu_is_active) {
          item.classList.toggle("--show");
        }
      });
      // слушаем скролл
      document.addEventListener("scroll", function () {
        //убираем класс если произошел скролл
        item.classList.remove("--show");
      });
    });

    function handlerItem(e) {
      e.preventDefault();
      e.stopPropagation();
      this.classList.toggle("--show");
  };
  
});


На дочерние ссылки срабатывает preventDefault. Как отменить его для дочерних элементов, не сломая код?
  • Вопрос задан
  • 110 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $
Rocket Брянск
от 60 000 до 100 000 ₽
21 мая 2024, в 16:29
1500 руб./за проект
21 мая 2024, в 16:14
80000 руб./за проект