@lagudal

Как улучшить закрытие по клику вне блока?

Вопрос чисто экспериментальный.
Недавно натолкнулся на меню - реализовано на css, открытие -скрытие подменю - на чекбоксах. Справедливо замечание, что нормальным поведением является скрытие подменю не только по клику на родителя, но и по клику вне меню. Решил для себя поупражняться и добавить такую функциональность.
на ванильном js,

на jquery
Все работает, одно но.
Начиная с 7и по последний дочерние элементы первого уровня подменю начинают открываться слева, и клик справа от меню не закрывает открытое меню, поскольку затрагивает дочерний элемент — промежуточный список ul.
Несмотря на то, что все элементы списка сдвинуты влево, этот список занимает конкретную область, и клик по этой области воспринимается скриптом как клик по дочернему элементу.
Сходу что то не нашел решения - пока в голову пришло только по hth-child(n) именно этот список в исключения, но мне кажется, что это решение будет несколько громоздким, или?
Наверняка есть более простой выход. )
  • Вопрос задан
  • 70 просмотров
Пригласить эксперта
Ответы на вопрос 1
dimastik1986
@dimastik1986
учусь
$(document).mouseup(function (e) {
	var el= $('.el'); //какой-то отображаемый блок
	if (!el.is(e.target) || el.has(e.target).length !== 0) {
		//туда-сюда и закрыли
		return false;
	}
});
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы