情况一:遮罩层包含了全部内容(点击事件源,以及用来排除的位置)
html:
js:
$(".mark").on("click", function(e) { //点击灰色区域关闭模态 if(e.target == $(".mark")[0]) { $(".mark").hide();//需要关闭的弹窗 } e.stopPropagation();});
情况 二:遮罩层与事件源不在同一容器内
html:
js:
$(document).on("click", function(e) { //齿轮及选项外关闭操作面板 if(e.target != $(".btn")[0] && e.target != $(".item")[0]) { //若点击以上2处以外的地方,则关闭弹窗 $(".panel").hide();//弹窗容器 } e.stopPropagation();});
目前也只会这样程度的,办法很死,若有人有灵活的办法,欢迎赐教。