请叫一个body事件的问题

yifuzhiming 2012-02-09 05:04:02
document.body.onclick=function(){

我只向捕获背景的点击事件,这个方法把input元素的也捕获了,有没有办法不捕获input的事件呢,谢谢各位
...全文
126 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
寒飞a 2012-02-13
  • 打赏
  • 举报
回复
我就是来赚分发帖的,速度给分。江湖救急、解决方法
document.body.onclick=function(e){
............你的代码写完后调用下面方法
StopEvent(e)
}
//停止事件冒泡,兼容各种浏览器
function StopEvent(e) {
if (e.stopPropagation) {e.stopPropagation();}
else if (window.event) {window.event.cancelBubble = true;}
}
zabcd117 2012-02-13
  • 打赏
  • 举报
回复
你可以判断一下event.target(srcElement),如果不是body的话,就不处理
峭沙 2012-02-13
  • 打赏
  • 举报
回复
		document.documentElement.onclick = function(event){
var e = event || window.event,
target = e.target || e.srcElement;
if(target === this){
alert(1);
}
}
hch126163 2012-02-10
  • 打赏
  • 举报
回复
1、 在 input 点击事件 取消事件冒泡

2、 body 事件,判断触发事件的源

推荐第2种

用第一种。每个控件的事件都要设置取消冒泡
三石-gary 2012-02-09
  • 打赏
  • 举报
回复
http://hi.baidu.com/shaoxiaoming/blog/item/af71454b4aa785f782025c8b.html
你自己也可以在网上搜下。。
孟子E章 2012-02-09
  • 打赏
  • 举报
回复
<script>

document.onclick=function(evt){
ele = window.event?window.event.srcElement:evt.target;
if(ele.tagName=="INPUT")
{
//不执行代码
}
else
{
alert(5)
}
}
</script>
yifuzhiming 2012-02-09
  • 打赏
  • 举报
回复
谢谢楼上,请问如何取消冒泡事件啊
三石-gary 2012-02-09
  • 打赏
  • 举报
回复
这个好像没办法把。。取消冒泡事件?! 但是你input属于body。。点击input的时候相当于也点击了body,你可以用取消冒泡事件的方法试下

87,990

社区成员

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

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