Jquery 单击外部时如何停止复选框勾选关闭其div

Jquery 单击外部时如何停止复选框勾选关闭其div,jquery,html,Jquery,Html,多亏了这么多帖子,我终于能够通过点击一个div之外的任何地方来关闭它。我的问题是,要关闭的div包含带有复选框的其他div。我希望能够在不关闭div的情况下单击复选框。 有人知道最有效的方法吗?我认为小提琴显示了这个问题,非常感谢您的帮助 $(函数(){ $(“#开始按钮”)。单击(函数(e){ 如果($('#maincainer')。是(“:可见”)){ $(“#主容器”)。淡出(200); }否则{ e、 预防默认值(); $(“#主容器”).fadeIn(200,函数(){ $(this

多亏了这么多帖子,我终于能够通过点击一个div之外的任何地方来关闭它。我的问题是,要关闭的div包含带有复选框的其他div。我希望能够在不关闭div的情况下单击复选框。 有人知道最有效的方法吗?我认为小提琴显示了这个问题,非常感谢您的帮助

$(函数(){
$(“#开始按钮”)。单击(函数(e){
如果($('#maincainer')。是(“:可见”)){
$(“#主容器”)。淡出(200);
}否则{
e、 预防默认值();
$(“#主容器”).fadeIn(200,函数(){
$(this.focus();
});
}
});
$(“#主容器”)。在('blur',function()上{
美元(本)。淡出(200);
});
});
#主容器{
宽度:200px;
高度:200px;
背景:绿色;
颜色:#FFFFFF;
显示:无;
位置:绝对位置;
左:-30px;
}
#支票箱{
宽度:100px;
高度:100px;
背景:黄色;
位置:绝对位置;
左:60px;
边缘顶部:50px;
}

开箱
"

在模糊侦听器中检查事件的
e.relatedTarget。键入事件的
,如果是复选框,则不要模糊,如果是复选框,则将焦点返回到主容器
,而不是模糊(请参阅下面代码的else块)

更新:

我们还需要检查
e.relatedTarget
null
值,因为单击外部时它将为null

$("#MainContainer").on('blur', function(e) {
    if(!(e.relatedTarget!=null&&
          e.relatedTarget.type=='checkbox'))  $(this).fadeOut(200);
    else $(this).focus();
});
$(函数(){
$(“#开始按钮”)。单击(函数(e){
如果($('#maincainer')。是(“:可见”)){
$(“#主容器”)。淡出(200);
}否则{
e、 预防默认值();
$(“#主容器”).fadeIn(200,函数(){
$(this.focus();
});
}
});
$(“#主容器”)。在('blur',函数(e)上{
if(!(e.relatedTarget!=null&&e.relatedTarget.type=='checkbox'))
美元(本)。淡出(200);
else{$(this.focus();}
});
});
#主容器{
宽度:200px;
高度:200px;
背景:绿色;
颜色:#FFFFFF;
显示:无;
位置:绝对位置;
左:-30px;
}
#支票箱{
宽度:100px;
高度:100px;
背景:黄色;
位置:绝对位置;
左:60px;
边缘顶部:50px;
}

开箱
"

不要为此使用
.blur()
。检测框外的点击事件,并用它来关闭它。在你的情况下,我会看看@Barmar,我花了几个小时浏览所有这些帖子。。。显然,有些事情与我的问题有很大关系,但鉴于我使用的具体方法,我找不到任何与我所问内容重复的东西。如果您能具体告诉我在哪里可以找到副本,我将不胜感激。我必须补充一点,在我的情况下,我根本无法让大多数其他方法发挥作用。@ValLeNain您提供了一个链接,指向与我最初连接的小提琴完全相同的东西。对不起,忘记保存草稿:)应该更好当事件不是从复选框生成时检查空值复选框检查我的更新代码。@Nadir Laskar这工作得很好,最重要的是,我从你的解释中学到了。我更喜欢这种方法,而不是在框外检测点击并继续注册用户的每一次点击。我很高兴,它起到了作用,是的,它是一种比监听每一次点击更好的方法。