js点击目标区域以外,隐藏目标

背景:点击 #modelTransparent 展示 #transparentControl
需求:点击空白区域隐藏 #transparentControl

目标区域: #transparentControl

//显示
$("#modelTransparent").click(function() {
    $("#transparentControl").css("display","block");
});

//隐藏
$(document).click(function(e){
    var tc = $("#transparentControl");
    if(tc.css("display") === "block"){
       var mt = $("#modelTransparent");
       if(!mt.is(e.target) && mt.has(e.target).length === 0){
          if(!tc.is(e.target) && tc.has(e.target).length === 0){
            tc.css("display","none");
          }
       }
    }
});

第一层判断是为了避免显示目标时,目标一闪而过的情况:
if(!mt.is(e.target) && mt.has(e.target).length === 0)

猜你喜欢

转载自blog.csdn.net/silence_hw/article/details/80823761