注册事件兼容性封装,支持IE6,7,8

    //创建一个对象对浏览器进行能力检测,并且根据能力返回具体的注册事件方式
    function createRegister(){
        if(document.addEventListener){
            //如果支持addEventlistener则直接返回
            return function(ele,type,handle){
                ele.addEventListener(type,handle)
            }
        }else if(document.attachEvent){
            //如果支持attachEvent的话需要做特殊处理
            //IE 6,7,8 只支持attachEvent,可是这个方法并不会传event对象给函数,而是存在window.event中所以必须手动传入
            //attachEvent中的this的指向并非调用的对象,需要用call重新定向
            return function(ele,type,handle){
                ele.attachEvent("on" + type, function (e) {
                    var e=e||window.event
                    handle.call(ele,e)
                });
            }
        }else{
            //如果上面两种方法都不支持 就使用on
            return function(ele,type,handle){
                ele["on"+type]=handle
            }
        }
    }
    var myRegister=createRegister()
    console.log(myRegister);
    myRegister(box,"click",function(e){
        console.log(this)
        console.log(e)
        alert('a')  
    })

 

转载于:https://my.oschina.net/u/3281152/blog/865787

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值