JavaScriptイベントバインドパッケージの互換性イベントバインディング方法


1、element.on*** = function(event){} this     
        ,      HTML    ,           
2、obj.addEventListener(type,fn,false) IE9          w3c      this     
    type:    
    fn:    
    false
                    ,  :
html  :

js代码:

var div = document.getElementsByTagName("div");
div.addEventListener('click',function(){
    console.log("a");
},false)
div.addEventListener('click',function(){
    console.log("b");
},false)
    a   b,      ,          ,       
var div = document.getElementByTagName("div"); div.addEventListener('click',test,false); div.addEventListener('click',test,false); function test(){ console.log("a"); } a, 。
3、obj.attachEvent('on' + type,fn) IE     obj.addEventListener(type,fn,false)    this   window
      :                    ,                  
    this   window   :
        var div = document.getElementByTagName("div");
        div.attachEvent('onclick',function () {
            console.log(this);//--->window
        })
       this     
        var div = document.getElementByTagName("div");
        div.attachEvent('onclick',function () {
            test.call (div) ;
        })
        function () {
            console.log(this);//---->div
        }

4、         addEvent(element,type,handle);  

   dom              
jsコード:
function addEvent(element,type,handle) {
    if(element.addEventListener){
        element.addEventListener(type,handle,false);
    }else if(element.attachEvent){
        element.attachEvent('on'+type,function () {
            handle.call(element);
        })
    }else {
        element['on'+type] = handle;
    }
}