Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Сворачивание меню при клике в любом месте страницы (https://javascript.ru/forum/dom-window/69111-svorachivanie-menyu-pri-klike-v-lyubom-meste-stranicy.html)

DmitriyLan 30.05.2017 14:18

Сворачивание меню при клике в любом месте страницы
 
Добрый день.
Нашел под свою задачу пример выпадающего меню:
http://www.jqueryscript.net/menu/Mob...in-jQuery.html
Мне нужно, чтобы оно сворачивалось при клике в любом месте страницы.

Для этого пробывал добавить этот скрипт:

$(document).on(hasTouch ? 'touchend' : 'click', function (e) {
if(hasTouch && isTouchMoved(e)){ return false; }e.preventDefault();
if($('.main-menu.mobile-mega-menu.open').length > 0 && $(e.target).parents('.main-menu').length == 0){
$('.main-menu-toggle').click();
}
});

Знакомый посоветывал попробывать замнить
$('.main-menu-toggle').click();
на
$('.main-menu-toggle')[0].click();
После этой правки меню перестало разворачиватся.

Если убрать класс .open и оставить $('.main-menu-toggle').click();, то меню сврачивается по клику, но пр это жуткоглючит, бывает нужно нажать пару раз.

Также, если убрать класс .open и оставить $('.main-menu-toggle')[0].click();, то меню свворачиватся без задержки, но при этом при нажатии на кнопку Close Menu ничего не происходит.

ksa 30.05.2017 14:37

Цитата:

Сообщение от DmitriyLan
Знакомый посоветывал попробывать замнить
$('.main-menu-toggle').click();

на
$('.main-menu-toggle')[0].click();

Твой знакомый ничего не смыслит в жиКвери... :D

Элементы "коллекции" жиКвери выделяются специальным методом
https://jquery-docs.ru/eq/

DmitriyLan 30.05.2017 15:00

Я, мягко говоря, тоже ничего не смыслию в жиКвери.
И немного не понимаю, как вашу подсказку применить к моей задаче.

рони 30.05.2017 15:07

Цитата:

Сообщение от DmitriyLan
$('.main-menu-toggle').click();

заменить на
$('.close-button').click();

ksa 30.05.2017 16:18

Цитата:

Сообщение от DmitriyLan
как вашу подсказку применить к моей задаче

Подсказка в том, что тот знакомец не советчик в этом деле... :)


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