partyzanx
@partyzanx

Что добавить, чтобы убирался класс?

Что добавить, чтобы происходило действие:

$('#leftMenu').removeClass("menuactive");
        $('.hamburger').removeClass("menuactive");
        $('.nav__link').removeClass("menuactive");


при условии, что .hamburger находится вне границ #leftMenu. Сейчас закрытие происходит при клике вне границ #leftMenu, но если кликнуть на .hamburger, который находится вне границ, закрытие не происходит.

Сам код:

// Всплывающее меню:
var nav = $('#leftMenu');
var toggle = $('.hamburger');
var navItems = $('.nav__link');

toggle.click(function (){
 toggleNav();
});

function toggleNav() {
  
  // Show Nav
  nav.toggleClass('menuactive');
  
  // Transform Hamburger into 'X'
  toggle.toggleClass('menuactive');
  
  // Show Nav Items
  navItems.toggleClass('menuactive');
}

$(document).mouseup(function (e) {
    var container = $("#leftMenu");
    if (container.has(e.target).length === 0){
        $('#leftMenu').removeClass("menuactive");
        $('.hamburger').removeClass("menuactive");
        $('.nav__link').removeClass("menuactive");
    }
});
  • Вопрос задан
  • 80 просмотров
Пригласить эксперта
Ответы на вопрос 1
Если .hamburger это дочерний элемент #leftMenu, тогда закрытие не будет происходить т.к. container.has(e.target).length выдаст 1. Если это так добавьте условие || e.target == $('.hamburger')
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект