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

Как корректно закрыть модальное окно?

Приветствую

Сделал простенькое модальное окно, но не получается его корректно закрыть. Оно закрывается, но закрывается при клике на любую часть, а по идее должно закрываться только при клике вне области контента, т.е. окно не должно закрываться при клике внутри области контента, а только в не его.

Подскажите пожалуйста где и что я упустил и как исправить логику работы закрытия окна?
  • Вопрос задан
  • 8432 просмотра
Подписаться 1 Оценить 6 комментариев
Решения вопроса 2
@Neyury
Советую почитать про всплытие и перехват

суть в том, что блок content располагается в блоке modal, и если кликнуть по блоку content, то событие всплывет и пройдет через блок modal.

При каждом событии вам нужно проверять где оно произошло, элемент на котором было вызвано событие можно получить через event.target
Ответ написан
Комментировать
alone_lion1987
@alone_lion1987
Веб-разработчик
https://jsfiddle.net/pgqytmw4/10/

Код разберете сами, если что не понятно, — спрашивайте в комментариях
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
// close modal
$('.modal').click(function () {
    $('.cover, .modal, .content').hide();
});

В этом куске кода у вас как раз указано, что если вы жмете на модальное окон, то происходит закрытие.
Ответ написан
@GreatRash
Смысл модального окна в том, чтобы его было невозможно закрыть никаким способом кроме одного: клик в кнопку "ок"/"отмена". Классический пример модального окна - alert();
Ответ написан
Комментировать
Krasnodar_etc
@Krasnodar_etc
fundraiseup
Я бы предложил не сделать подложку внутри modal , но на одном уровне с content . Т.е. как раз затемнённую область сделать подложкой. И ловить клики на неё, а не на всё окно.

Сейчас не работает, поскольку клик на вложенный элемент вызывает клик и на родителя
Ответ написан
Ваш ответ на вопрос

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

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