js事件,封装函数,阻止冒泡及默认事件,事件源对象

本文介绍了一种封装事件绑定方法addEvent()的技巧,该方法兼容多种浏览器,包括IE。文章详细解释了如何使用此方法绑定点击事件,并提供了阻止默认事件及事件冒泡的方法。此外,还对比了不同浏览器下事件源对象的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

封装绑定事件的方法addEvent()

function addEvent(elem,type,handle){
    if(elem.addEventListener){         //可绑定多个方法
        elem.addEventListener(type,handle,false)
    }else if(elem.attachEvent){        //兼容ie  不仅可绑定多个方法,
                                        //同样的方法名都可以绑定多个
        elem.attachEvent('on' + type, function(){
            handle.call(elem);    //ie中此方法指向window,因此需要改变一下
        })
    }else{
        elem['on' + type] = handle;    //通用 但只能绑定一个方法
    }
}

使用时只需:
addEvent(div1, ‘click’, fun);

阻止默认事件:
1、return false 以对象属性方式注册的事件才生效
例如:

document.oncontextmenu = function(){       //右键菜单事件
    console.log("a");
    return false;
}

2、e.preventDefault()

document.oncontextmenu = function(e){       //w3c标准 ie9以下不兼容
    e.preventDefault();
}

3、e.returnValue = false

document.oncontextmenu = function(e){       //兼容ie
    e.returnValue = false;
}

阻止冒泡:
1、event.stopPropagation() w3c标准 ie9以下不兼容

2、event.cancleBubble = true ie独有方法

事件源对象:
1、event.target 火狐
2、event.srcElement ie
谷歌两个都兼容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值