2010-12-02 2 views
1

그래서 흐림 효과에 대한 양식을 닫으려고합니다. 페이스 북의 의견. 실제로 라이브를 만들기 위해 갔을 때 클릭 할 때 return false 것을 추가하여, 그러나 잘 작동"흐리게"에 양식을 닫는 - 더 좋은 방법이 있습니까?

$(window).click(function(){ $('.comment_form').hide(); }); 
$('.comment_form').click(function(){ return false; }); 

, 그것은 제출 버튼을 상쇄 : 문제는 내가 가지고있다. , 그렇지 않은 그리고 난 내가 클릭 할 때, 나는 실제로 body, div을 클릭하고,의 말 .comment_form을 할 수 있기 때문에 그것의 가정, 불행히도,

$('*:not(.comment_form,.comment_form *)').click(function(eve) 
{ 
    $('.comment_form').hide(); 
}); 

그러나 :

나는 논리적으로 대신이 일 것이라고 생각 div ... etc 실제로 여러 번 숨 깁니다.

내 작업은 약하지만, 나는이 같은 모르겠어요이 왜 메신저 요구하고있다 마지막으로

$('*').click(function(eve) 
{ 
    if(!$(eve.target).is('.comment_form,.comment_form *')) 
    { 
     $('.comment_form').hide(); 
    } 
}); 

했다. 이 클릭 이벤트가 발생하면마다 번의 클릭이 발생합니다.

누구에게 의견이 있습니까?

+0

나는이에 대한 답은 분명하다 확신 ,하지만 왜'$ ('. comment_form input')을 사용하지 않을 것인가. blur (function() {...})'? –

+0

이것은 양식 인 반면 주석 영역은 텍스트 영역이므로 제출하지 않고 예를 들어 제출 옆의 오른쪽을 클릭하면 닫는 것이 좋습니다. –

답변

1

귀하의 솔루션은 궤도에이지만, 모든 요소를 ​​document에 이벤트를 첨부, 대신 에 온건 수 있습니다 (*) :

$(document).click(function(eve) { 
    if (!$(eve.target).is('.comment_form, .comment_form *')) { 
     $('.comment_form').hide(); 
    } 
}); 
+0

좋은. 고마워요. 아프다. –

+0

흠 ... 내가 더 이상 "코멘트"를 클릭 할 수는 없지만 모든 클릭을 차단하고있는 것 같습니다 ... 음 ... –