Итак, я пытаюсь закрыть форму на размытие, например, комментарии в Facebook.Проблема в том, что у меня было:
$(window).click(function(){ $('.comment_form').hide(); });
$('.comment_form').click(function(){ return false; });
, которое работало нормально, однако, добавив, что return false
, он отменяет кнопку отправки при нажатии, когда я на самом деле пошел, чтобы запустить его.
Я думал, что вместо этого это будет работать логически:
$('*:not(.comment_form,.comment_form *)').click(function(eve)
{
$('.comment_form').hide();
});
Но, к сожалению, это не так, и я предполагаю, что это потому, что когда я нажимаю, скажем, .comment_form
, я на самом деле нажимаю body
, div
, div
... и т. Д., Так что он фактически скрывает это несколько раз.
Моя работа была окончательно
$('*').click(function(eve)
{
if(!$(eve.target).is('.comment_form,.comment_form *'))
{
$('.comment_form').hide();
}
});
Однако я не уверенМне нравится это, и именно поэтому я спрашиваю.Это вызовет событие клика каждый клик .
У кого-нибудь есть предложения?