2010-12-02 3 views
1

だから、私はぼかしのフォームを閉じようとしています。 Facebookのコメント。私は実際にそれを生かすために行ったときにクリックされたときreturn falseは、それが送信ボタンを相殺することを追加することによって、しかし、うまく働いた"ぼかし"でフォームを閉じる - より良い方法がありますか?

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

:問題は、私が持っていた、あります。

私は、これは論理的に代わりに働くだろうと思った:

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

をしかし、残念ながら、それはないと私はdiv、私は実際にbodyをクリックしています.comment_form、私がクリックしたとき、のは言わせてからだと仮定div ...などです。実際には複数回隠します。周り

私の仕事は、しかし、私はこれを好きなので、わからないんだけど、これがなぜイム求めている。最終的には

$('*').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

うーん...私はもう "コメント"をクリックすることはできませんが、すべてのクリックをブロックしているようです...うーん... –

関連する問題