关闭“模糊”的表格 - 有更好的方法吗?

时间:2010-12-02 06:14:57

标签: javascript jquery events forms event-bubbling

所以,我试图在模糊时关闭表格,例如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我实际上点击了bodydiv,{{1} } ...等所以它实际上多次隐藏它。

我的工作终于来了

div

然而,我不太确定我喜欢这个,这就是我要问的原因。这将触发此点击事件每次点击

有人有任何建议吗?

1 个答案:

答案 0 :(得分:1)

您的解决方案是正确的,但将事件附加到document,而不是所有元素*)可能更合理:

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