中attachEvent中this的指向问题?

在IE中使用事件绑定函数与web标准是不同的,web标准中使用addEventListener方法为dom对象添加事件监听。但是万恶的IE却有自己添加事件监听的方法---attachEvent方法。在attachEvent中this的指向是window。如何兼容高级浏览器与低级IE的事件?

14-09-19  hada19840707 发布
1个回答
时间
投票
  • 0

    hada19840707 这家伙很懒,什么也没留下

    varEvent={};

    Event.addEvent =function(target,eventType,handle){

    if(document.addEventListener){

      target.addEventListener(eventType,handle,false);

    }elseif(document.attachEvent){

      target.attachEvent('on'+eventType,function(){

    //这里改变this的指向

    handle.apply(target,argumentsArray);

    });

    }else{

      target['on'+eventType] = handle;

    }

    };


    这里只是一个框架思路,如果想让程序更强壮一些,可以添加一些参数类型判断等等

    detachEvent同理。

    14-12-23 | 添加评论 | 打赏

    评论读取中....

精华知识
更多  
意见反馈 帮助