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

Скрываем меню при клике на другую область?

Здравствуйте, использую меню - все работает хорошо (решение нашел в интернете), но хочу сделать штуку чтоб на любой области экрана оно закрывалось, как это внедрить в этот код без понятия (
Нужно чтоб не скрывалось хайдом а при клике на любую область удалялся клас опен и все ставало на свое место.
<script>
        $(function() {
            $('.ui-nav').tooltip();
        });
        $(document).ready(function() {
            $(".nav__left a.ui-head").click(function(e) {
                e.preventDefault();
                if (!($(this).parent(".ui-outer").hasClass("open"))) {
                    $(this).parent(".ui-outer").addClass("open").animate({
                        "width": "350px"
                    }); //Expands outer block
                    $(this).parent(".ui-outer").find("a > span").animate({
                        "opacity": "1"
                    }); //Display Headings
                } else {
                    $(this).parent(".ui-outer").removeClass("open").animate({
                        "width": "116px"
                    }); //Reduces outer block
                    $(this).parent(".ui-outer").find("a > span").animate({
                        "opacity": "0"
                    }); //Hide Headings
                }
                if (!($(this).parent(".ui-outer").hasClass("open"))) {
                    $(this).parent(".ui-outer").removeClass("open").animate({
                        "width": "116px"
                    }); //Reduces outer block
                }
            });
        });
    </script>
  • Вопрос задан
  • 217 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
@Lord_Dantes
Обычно использую затемнение в качестве выделения меню, я так делаю по крайней мере. И далее уже затемнение выставляем допустим з-индекс 100 а меню з-индекс 200. И делаем клик на затемнение и убираем меню и все.
Ответ написан
notiv-nt
@notiv-nt
Как ваше ничего? Да, моё тоже
document.addEventListener('click', onDocumentClick);

function onDocumentClick(e) {
  const menu = элемент меню; //

  let parent = e.target;
  let inMenu = false;

  while (parent) {
    if (parent === menu) {
      inMenu = true;
      break;
    }

    parent = parent.parentElement;
  }

  if (!inMenu) {
    // hide()
  }
}
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы