JavaScript事件的一些兼容写法

绑定事件

  • addEventListener: W3C标准写法IE不兼容

  • attachEvent:兼容IE
    两者间的区别:
    1, 事件名不同:IE下要加“on“,W3C不加
    2, 加载事件的执行顺序不同,W3C按绑定事件的顺序来执行,而IE6,7是后绑定的时间先发生
    3, this的指向,W3C中,绑定函数中的this指向DOM对象,而IE6,7指向WINDOWS对象

      var addEvent = function( obj, type, fn ) {
        if (obj.addEventListener)
          obj.addEventListener( type, fn, false );
        else if (obj.attachEvent) {
          obj["e"+type+fn] = fn;
          obj.attachEvent( "on"+type, function() {
            obj["e"+type+fn]();
          } );
        }
      };
    

移除事件

    var removeEvent = function(obj, type, fn) {
        if (obj.removeEventListener)
            obj.removeEventListener( type, fn, false );
        else if (obj.detachEvent) {
          obj.detachEvent( "on"+type, obj["e"+type+fn] );
          obj["e"+type+fn] = null;
        }
    }

加载事件与脚本

    var loadEvent = function(func) {
        var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    }else {
        window.onload = function() {
            oldonload();
            func();
          }
      }
    }  

阻止事件

    var cancelEvent = function(event) {
      event = event||window.event
    if (event.preventDefault) {
        event.preventDefault(  );
        event.stopPropagation(  );
    } else {
        event.returnValue = false;
        event.cancelBubble = true;
    }
}

取得事件源对象

相当于Prototype.js框架的Event.element(e)

  var getTarget = function(event){
      event = event || window.event;
  var obj = event.srcElement ? event.srcElement : event.target;
       return obj
  }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 什么是事件: 我们可以简单的把事件理解为浏览器的感知系统。比如说:他可以感觉到用户是否点击(click)了页面、鼠...
    张松1366阅读 6,967评论 1 6
  • <a name='html'>HTML</a> Doctype作用?标准模式与兼容模式各有什么区别? (1)、<...
    clark124阅读 3,758评论 1 19
  • @转自GitHub 介绍js的基本数据类型。Undefined、Null、Boolean、Number、Strin...
    YT_Zou阅读 1,293评论 0 0
  • 转载 前端开发面试题 <a name='preface'>前言</a> 本文由我收集总结了一些前端面试题,初学者阅...
    小九喵喵阅读 521评论 0 0
  • 我们总是为未来担心和惶恐,好困难,自己什么都不会,怎么办?不怕,我们先去做,明天的事谁都不知道,我们遇到问题,便解...
    吃锅盔的阅读 183评论 0 0

友情链接更多精彩内容