$(document).mouseup(function(e){
var _con = $(' 目标区域 '); // 设置目标区域
if(!_con.is(e.target) && _con.has(e.target).length === 0){ // Mark 1
some code... // 功能代码
}
});
/* Mark 1 的原理:
判断点击事件发生在区域外的条件是:
1. 点击事件的对象不是目标区域本身
2. 事件对象同时也不是目标区域的子元素
*/
https://segmentfault.com/q/1010000000452465
方法1
$(
'body'
).click(
function
(e) {
var
target = $(e.target);
// 如果#overlay或者#btn下面还有子元素,可使用
// !target.is('#btn *') && !target.is('#overlay *')
if
(!target.is(
'#btn'
) && !target.is(
'#overlay'
)) {
if
( $(
'#overlay'
).is(
':visible'
) ) $(
'#overlay'
).hide();
}
});
$(
'body'
).click(
function
(e) {
if
(e.target.id !=
'btn'
&& e.target.id !=
'overlay'
)
if
( $(
'#overlay'
).is(
':visible'
) ) $(
'#overlay'
).hide();
})
http://www.u396.com/hide-box-when-clicking-on-body-but-not-on-special-element.html