办法一:
第一,先实现点击任何地方都隐藏该元素(假设id="bar")
$(document).click(function(){
$("#bar").hide();
});
第二,点击特定元素不隐藏
那么bar也属于document,点击bar也会让自己隐藏,显然这不是想要的,这时候要阻止冒泡事件,即document的事件对bar无效
$("#bar").click(function(event){
event.stopPropagation();
});
办法二:
$(document).click(
function
(e){
if
($(e.target).find(
'.select_box'
).length !== 0 ){
// 如果 你点击的这个元素 里面包含 select_box (也就是查找出来的dom 数量不是0)
// 就执行你需要隐藏的方法 当你点击的元素是select_box 或者他里面的元素 时候,
// 里面肯定不会 包含 select_box 也就不会执行 隐藏的方法
if
($(
".option"
).css(
'display'
)==
'block'
){
$(
".option"
).hide();
}
}
});