Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Убрать боковое меню при клике не по меню (https://javascript.ru/forum/dom-window/70235-ubrat-bokovoe-menyu-pri-klike-ne-po-menyu.html)

Oleg0 21.08.2017 18:51

Убрать боковое меню при клике не по меню
 
Привет всем!
Наверняка, для Вас это вопрос элементарный (иначе, я бы к Вам и не обратился :)).

На сайте https://cartin.ru/ в мобильной версии (при уменьшении размера браузера) появляется кнопка меню (т.н. гамбургер)

При нажатии на кнопку выезжает слева меню, и убирается, если нажать на эту же кнопку. С этим проблем нет. Это я деляю кодом, который по моему ранее нашел на этом форуме:

$(document).ready(function(){
$('#top_menu_click').toggle(
function(){ 
$('.page').animate({'left':'200'},400);
},
function(){ 
$('.page').animate({'left':'0'},400);
});  
});


А как сделать так, чтобы меню убиралось, если нажать на любом месте, кроме этого меню?
Я пробовал по аналогии. Добавил это ниже первого кода:
$('.page').click(function() {
  $('.page').animate({'left':'0'},400);
})


Но проблема в том, что если нажимаю на другом месте, то меню убирается, но чтобы его снова показать приходится 2 раза нажимать на гамбургер.
Я так понимаю, первая часть кода помнит то, что было сделано в ней. И не знает, чего происходило во второй части. Как их подружить, или может вообще надо по другому это делать?

рони 21.08.2017 19:23

Oleg0,
$(document).click(function (e) {
        var left = parseFloat($('.page').css("left"))
        if (!$(e.target).closest("#block-block-30, #top_menu_click").length && left ) $('#top_menu_click').click();
    });

Oleg0 21.08.2017 20:07

Рони как всегда лучший! Спасибо!


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