求助大虾,关于jq点击空白隐藏div的问题
<!DOCTYPE html >
<html >
<head>
    <meta charset="UTF-8">
    <title>点击空白处关闭弹出窗口</title>
    <style type="text/css">
        .pop{width:200px;height:130px;background:#080;}
    </style>
     <script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script>
    <script type="text/javascript">
        $(function(){
            $('#btn').click(function() {
                $('#pop').show("slow");//open dialog
            });
            $(document).bind("click",function(e){
                var target  = $(e.target);//表示当前对象,切记,如果没有e这个参数,即表示整个BODY对象
                console.info(target.closest(".pop").length)
                console.info(target.closest("#btn").length)
                if(target.closest(".pop").length == 0 && target.closest("#btn") ==0){
                        $("#pop").hide();
                }
            })
        })
    </script>
</head>
<body>
<button id="btn">打开div</button>
<div id="pop" class="pop" style="display: none"></div>
</body>
</html>

上面是完整的代码,主要想实现,点击按钮显示div,然后点击除按钮和div外的空白,隐藏div,
目前的问题是,可以打开div,但是不能隐藏div,请大虾帮忙看下代码是哪里出问题了;
主要的困惑是target.closest(".pop").length==0为true,target.closest("#btn").length==0为true;为什么target.closest(".pop").length == 0 && target.closest("#btn") ==0就为false了

2个回答

if((target.closest(".pop").length == 0) && (target.closest("#btn").length ==0)){
$("#pop").hide();

/*目测问题应该出在&&这里,
target.closest(".pop").length == 0 && target.closest("#btn") ==0可以理解为
target.closest(".pop").length == 0与target.closest("#btn") ==0两个整体;
也可以理解为target.closest(".pop").length == 0 && target.closest("#btn")是否等于0这一个整体
所以将二者分开写,就没有问题了
/
/
if(target.closest(".pop").length == 0 && target.closest("#btn") ==0){
$("#pop").hide();
}*/

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问