Задать вопрос
@dmyasnykov

Действие при двойном клике (если 2 клика под ряд)?

Помогите сделать счетчик кликов по условию.
Если нажали на элемент 1 раз - добавить класс, 2 раза под ряд, то убрать класс.

У меня 2 выпадающих меню, нужно, что бы оно закрывалось:
1. по нажатию на ту же кнопку которая его и открыла
2. по нажатию на соседнее меню
3. по нажатию на оверлей(любой другой элемент не относящийся к этому или другому меню)

первые 2 действия делаются без проблем, а вот с третьим проблема, задал обеим кнопкам toggle для overlay, в результате чего если сначала нажать на одну кнопку, потом на вторую , overlay откроется и закроется и соответственно потом закрыть второе меню через overlay не получится т.к. он закрылся или наоборот остался и блокирует все элементы.

https://jsfiddle.net/gxou8wv0/

возможно есть и другой вариант, подскажите пожалуйста.
  • Вопрос задан
  • 299 просмотров
Подписаться 1 Оценить 6 комментариев
Решения вопроса 1
С оверлеем всё просто
jQuery(document).ready(function () {
    $(document).click(function () {
    
    	if(event.target.className != "btn1" && event.target.className != "btn2" ) {
          console.log("Кликнута не кнопка")
      }
    });
});

Естественно этот код нужно довести до ума
  • Вычленять конкретное имя класса из общей строки, полученной через .className
  • Возможно кнопкам стоит присвоить отдельный класс, к примеру menuButton, что бы в if искать только одно общее имя класса, а не 10 уникальных


Насчёт поведения оверлея при нажатии на разные кнопки меню - используйте проверку состояние оверлея в обработчике клика
if(!$(".overlay").hasClass("open")){}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
22 дек. 2024, в 20:40
10000 руб./за проект
22 дек. 2024, в 20:34
3000 руб./за проект
22 дек. 2024, в 20:12
10000 руб./за проект