当前位置: 代码迷 >> JavaScript >> 请叫一个body事件的有关问题
  详细解决方案

请叫一个body事件的有关问题

热度:73   发布时间:2012-03-12 12:45:33.0
请叫一个body事件的问题
document.body.onclick=function(){  

我只向捕获背景的点击事件,这个方法把input元素的也捕获了,有没有办法不捕获input的事件呢,谢谢各位

------解决方案--------------------
这个好像没办法把。。取消冒泡事件?! 但是你input属于body。。点击input的时候相当于也点击了body,你可以用取消冒泡事件的方法试下
------解决方案--------------------
<script>

document.onclick=function(evt){
ele = window.event?window.event.srcElement:evt.target;
if(ele.tagName=="INPUT")
{
 //不执行代码
}
else
{
alert(5)
}
}
</script>
------解决方案--------------------
http://hi.baidu.com/shaoxiaoming/blog/item/af71454b4aa785f782025c8b.html
你自己也可以在网上搜下。。
------解决方案--------------------
1、 在 input 点击事件 取消事件冒泡

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

推荐第2种

用第一种。每个控件的事件都要设置取消冒泡
------解决方案--------------------
你可以判断一下event.target(srcElement),如果不是body的话,就不处理
------解决方案--------------------
我就是来赚分发帖的,速度给分。江湖救急、解决方法
document.body.onclick=function(e){ 
............你的代码写完后调用下面方法
StopEvent(e)
}
//停止事件冒泡,兼容各种浏览器
function StopEvent(e) {
if (e.stopPropagation) {e.stopPropagation();}
else if (window.event) {window.event.cancelBubble = true;}
}
------解决方案--------------------
JScript code
        document.documentElement.onclick = function(event){
            var e = event || window.event,
                target = e.target || e.srcElement;
            if(target === this){
                alert(1);
            }
        } 
  相关解决方案