Закрытие меню при нажатии javascript

289
08 января 2018, 11:58

Добрый день, столкнулся с такой проблемой, есть лендинг, на мобильной версии появляется кнопочка при нажатии на которую выпадает меню, но когда я нажимаю на любую ссылку в меню, меню не закрывается, страница переходит к нужному блоку, а меню остаётся, а нужно что бы оно сворачивалось. Уже сил не хватает, никак не могу найти ошибку, помогите пожалуйста

       $('a.page-scroll').on('click', function(e) {
        var anchor = $(this);
        $('html, body').stop().animate({
            scrollTop: $(anchor.attr('href')).offset().top - 50
        }, 1500);
        e.preventDefault();
    });
    $(window).on('scroll', function() {
        if ($(this).scrollTop() > 100) {
            $('.main-menu').addClass('menu-animation');
        } else {
            $('.main-menu').removeClass('menu-animation');
        }
    });
    $(document).on('click', '.navbar-collapse.in', function(e) {
        if ($(e.target).is('a') && $(e.target).attr('class') != 'dropdown-toggle') {
            $(this).collapse('hide');
        }
    });
    <div class="navbar navbar-default navbar-fixed-top main-menu">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                <span class="sr-only">Навигация</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a href="index.html" class="navbar-brand"><img src="assets/img/logo.png" alt="logo">
            </a>
        </div>
        <div class="navbar-collapse collapse">
            <nav>
                <ul class="nav navbar-nav navbar-right">
                    <li><a class="page-scroll" href="#home"><span>Главная</span> </a>
                    </li>
                    <li><a class="page-scroll" href="#about"><span>О нас</span></a>
                    </li>
                    <li><a class="page-scroll" href="#pricing"><span>Клиенту</span></a>
                    </li>
                    <li><a class="page-scroll" href="#blog"><span>Галерея</span></a>
                    </li>
                    <li><a class="page-scroll" href="#portfolio"><span>Услуги</span></a>
                    </li>
                    <li><a class="page-scroll" href="#contact"><span>Связь</span></a>
                    </li>
                </ul>
            </nav>
        </div>
    </div>
    <!--- END CONTAINER -->
</div>
Answer 1

не

$(this).collapse('hide');

a

$(<menu-selector>).collapse('hide');

и не

$(e.target).attr('class') != 'dropdown-toggle'

a

!$(e.target).hasClass('dropdown-toggle')
READ ALSO
Подключение к postgresql js

Подключение к postgresql js

Как подключиться к postgresql c помощью js ?

201
Всплывающее предупреждение для Recapcha

Всплывающее предупреждение для Recapcha

Добрый деньСоздана Ajax форма записи на консультацию

192
Вывод первой строки матрицы через forEach

Вывод первой строки матрицы через forEach

Необходимо вывести первую строку матрицы используя цикл forEach

368
Как получить доступ к кэшу процессора пользователя на JS (Meltdown, Spectre)?

Как получить доступ к кэшу процессора пользователя на JS (Meltdown, Spectre)?

Нашёл такой пример, но он по-моему не работает

294