Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Прятать меню вне нажатия на него (https://javascript.ru/forum/events/68970-pryatat-menyu-vne-nazhatiya-na-nego.html)

biryukovm 21.05.2017 15:08

Прятать меню вне нажатия на него
 
Привет всем.
Я в интернете надыбал меню адаптивное
https://special.habrahabr.ru/kyocera/p/153103/

Оно удобно все классно, но есть проблема и причем крупная.

Чтобы вызвать меню надо нажать на кнопку #pull
И чтобы закрыть надо опять же на нее нажать

Я немного расширил скрипт для моей надобности
$(function() {
    var pull = $('#pull');
    menu = $('nav ul.clearfix');
    menuHeight = menu.height();
    
    $(pull).on('click', function(e) {
        e.preventDefault();
        menu.slideToggle();

        $(this).toggleClass('active');
        menu.toggleClass('closed');
    });
    $(window).resize(function() {
        var w = $(window).width();
        if (w > 320 && menu.is(':hidden')) {
            menu.removeAttr('style');
        }
    });
});



И Вот теперь у меня вопрос.
Мне нужно при клике в не меню чтобы выполнились эти действия
$(this).toggleClass('active');
        menu.toggleClass('closed');


Подскажите как мне сделать ?

рони 21.05.2017 17:14

biryukovm,
$(document).on("click", function(a) {
    $(a.target).closest("#pull, nav ul.clearfix").length || ($("#pull").removeClass("active"), $("nav ul.clearfix").slideUp().addClass("closed"))
});

biryukovm 01.06.2017 15:26

Цитата:

Сообщение от рони (Сообщение 452962)
$(document).on("click", function(a) {
    $(a.target).closest("#pull, nav ul.clearfix").length || ($("#pull").removeClass("active"), $("nav ul.clearfix").slideUp().addClass("closed"))
});


Забыл поблагодарить, Спасибо Рони очень помогло


Часовой пояс GMT +3, время: 21:52.