@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. В чем ошибка?
  • Вопрос задан
  • 63 просмотра
Пригласить эксперта
Ответы на вопрос 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();
});


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

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

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