js元素绑定事件

想给一个元素绑定一个方法之后,在绑定一个方法而且不被覆盖

 window.onload = function () {
       alert('a'); 
    }
window.onlaod=function(){
    
     alert('b')
}

我们发现它只弹出一个,有一个被覆盖了

下面就说一下js中的绑定事件

    attachEvent(IE中用)
   var oBtn = document.getElementById('btn1');
    oBtn.attachEvent('onclick', function () { alert('a') } );
    oBtn.attachEvent('onclick', function () { alert('baa') } );

   但在ff 和chrome 却用不了  在 ff和chrome是用addEventListener  它们是click  而IE中是onclick
      oBtn.addEventListener('click', function () { alert('a') }, false);
      oBtn.addEventListener('click', function () { alert('b') }, false);
兼容性判断

var oBtn = document.getElementById('btn1');

 if (oBtn.attachEvent) { //IE 中
    oBtn.attachEvent('onclick',function () { alert('a') }
); 

 oBtn.attachEvent('onclick',

   function () { alert('baa') }
 );

}
 else {
//firefox googleChorme
  oBtn.addEventListener('click', function () { alert('a') }, false);
  oBtn.addEventListener('click', function () { alert('b') }, false);

 }

//为了代码好看一点,写一个代码封装判断兼容性


function myAddEvent(obj, ev, fn) {
if (obj.attachEvent) {
   obj.attachEvent('on' + ev, fn);
}
else
{
   obj.addEventListener(ev, fn, false);
}
}

原文地址:https://www.cnblogs.com/yzenet/p/3645382.html