如何在鼠标点击div区域外执行函数

yjxf8285 2011-10-17 08:15:10
比如我有个正方形的div,我想让我的鼠标点此div区域外任何地方把它隐藏掉,jquery是否有此函数比如:
$("div").thisOut().click(
$(this).hide();
)
哈哈,我自己瞎写的。其实我想要的功能就类似blur(),但是blur()适合对表单元素,而不能用在DIV上面。
...全文
1108 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yjxf8285 2011-10-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 axiheyhey 的回复:]

HTML code
<div id="mydiv">mydiv</div>
<scrript>
$(document).click(function(e){
var target = $(e.target);
if(!target.is('#mydiv')){
target.hide();
}
}
</script>
[/Quote]
这样可以实现 虽然原理和我想要的不太一样,还是给分了!
liangws 2011-10-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 qgqch2008 的回复:]

引用 1 楼 daniel31045 的回复:

你可以监听这个div的父元素,如body。
然后再监听函数中检查e.target || e.srcElement,看是不是你的div, 不是的话,就隐藏掉div
JScript code


var yourDiv = document.getElementById('yourDiv');
document.body.onclic……
[/Quote]

你把代码放到<body></body>后面执行
bee0060 2011-10-18
  • 打赏
  • 举报
回复
弱弱的问一句,

“blur()适合对表单元素,而不能用在DIV上面”

是真的吗? 为什么呢?

谢谢
  • 打赏
  • 举报
回复
听起来更像是需要页面的事件穿透中判断,非目标区域的点击就把目标区域处理掉,不懂JQ,看看里面有无穿透事件的处理吧
峭沙 2011-10-17
  • 打赏
  • 举报
回复
<div id="mydiv">mydiv</div>
<scrript>
$(document).click(function(e){
var target = $(e.target);
if(!target.is('#mydiv')){
target.hide();
}
}
</script>
qgqch2008 2011-10-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 daniel31045 的回复:]

你可以监听这个div的父元素,如body。
然后再监听函数中检查e.target || e.srcElement,看是不是你的div, 不是的话,就隐藏掉div
JScript code


var yourDiv = document.getElementById('yourDiv');
document.body.onclick = function(e){
e = e || wi……
[/Quote]报错啊,错误: 'document.body' 为空或不是对象
daniel31045 2011-10-17
  • 打赏
  • 举报
回复
你可以监听这个div的父元素,如body。
然后再监听函数中检查e.target || e.srcElement,看是不是你的div, 不是的话,就隐藏掉div


var yourDiv = document.getElementById('yourDiv');
document.body.onclick = function(e){
e = e || window.event;
var target = e.target || e.srcElement;
if(target != yourDiv){
yourDiv.style.display = 'none';
}
}

87,914

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧