@moiseev1788

Почему блок убирается по клику?

Столкнулся с такой проблемой. При клике на кнопку появляется блок, но через какое-то время он почему-то исчезает, не могу понять почему. Пример ниже

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="container">
  <div class="header__list--item menu-click">Материалы</div>
  <div class="header__menu">
    Контетн
  </div>
</div>

.header__list--item {
  padding: 18px 32px;
  background: blue;
  color: #fff;
  text-align: center;
  cursor: pointer;
}

.header__menu {
  display: none;
  background: red;
  padding: 52px 18px;
  text-align: center;
  color: #fff;
}

$(function() {
    var res = $(".header__menu");
    $(".menu-click").on("click", funk);
    $(document).click(function(e) {
        if (!$(e.target).parents().hasClass('menu-click')) funk(false);
    });

    $('.header__menu').on('click', function(e) { e.stopPropagation() });

    function funk(flag) {
        if (res.css("display") == "none" && flag) {
            res.fadeIn(300);
        } else {
            res.fadeOut(300);
        }
    }
});
  • Вопрос задан
  • 50 просмотров
Решения вопроса 1
FeST1VaL
@FeST1VaL
Тихий
потому что срабатывает

$(document).click(function(e) {
        if (!$(e.target).parents().hasClass('menu-click')) funk(false);
    });


Можете по сути убрать .parents тогда он не будет активироваться на клик по самому menu-click и в следующий раз лучше делайте песочницу чем просто код.

Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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