@cazumbra

Почему не закрывается окно при клике вне элемента?

Всем привет. У меня есть код для открытия и закрытия окна с формой подписки.

$('.subscribe-close a').on ('click', function(event) {     
	$body.removeClass('subscribe-fullscreen');
	$('.subscribe').slideToggle('hide');
	event.preventDefault();
});

$('.subscribe-open a').on ('click', function(event) { 
   $body.addClass('subscribe-fullscreen');
	$('.subscribe').slideToggle('show');
	event.preventDefault();
	
});


Я бы хотел привязать событие по клику вне элемента, чтобы окно закрывалось. Если модифицирую код на закрытие вот так

$(document).on('click', function(event) { 
if (!$(event.target).closest('.parent_block').length) {    
  $('.subscribe').slideToggle('hide');
  }
  $body.removeClass('subscribe-fullscreen');
        event.stopPropagation();
  event.preventDefault();
});


то окно при открытии сразу закрывается, а если откроется, то закрывается при нажатии в любом месте, в том числе и по блоку .parent_block. В чем ошибка?
  • Вопрос задан
  • 61 просмотр
Пригласить эксперта
Ответы на вопрос 1
@cazumbra Автор вопроса
Сделал вот так

$(document).on('click', function(event) { 
if (!$(event.target).closest('#mc_embed_signup').length) {    
  $('.subscribe').slideToggle('hide');
  }
  $body.removeClass('subscribe-fullscreen');
    event.preventDefault();
    event.stopPropagation();
});

$('.subscribe-open').on ('click', function(event) { 
   $body.addClass('subscribe-fullscreen');
  $('.subscribe').slideToggle('show');
  event.preventDefault();
  event.stopPropagation();
});


вроде ок, только теперь окно открывается по нажатию на любое место на сайте...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
26 апр. 2024, в 09:18
500 руб./в час
26 апр. 2024, в 06:46
1500 руб./в час
26 апр. 2024, в 05:31
1000 руб./за проект