最近项目中出现了这种情况,点击某个按钮或链接,出现一个弹窗或者展开一个模块,然后点击弹窗(模块)之外的空白,它会被关闭。所以就出现了js如何获取一个div以外的所有地方,于是百度了一下代码,亲测有用,已经运用到项目中,下面分享一下,有别的更简单的方法,欢迎补充。
$(document).mouseup(function(e){
var _con = $(' 目标区域 '); // 设置目标区域
if(!_con.is(e.target) && _con.has(e.target).length === 0){
some code... // 功能代码
}
});
原理:
判断点击事件发生在区域外的条件是:
1. 点击事件的对象不是目标区域本身
2. 事件对象同时也不是目标区域的子元素