事件绑定 解除事件绑定

attachEvent(事件名,函数)  //IE

addEventListener(事件名,函数 false)  //FireFox Chrome

兼容写法:

 1 <script>
 2 window.onload=function()
 3 {
 4     var aBtn=document.getElementById('btn');
 5     if(aBtn.attachEvent)  //IE
 6     {
 7         aBtn.attachEvent('onclick', function(){
 8             alert('a');
 9         });
10         
11         aBtn.attachEvent('onclick', function(){
12             alert('b');
13         });
14     }
15     else  //FireFox Chrome
16     {
17         aBtn.addEventListener('click', function(){  //事件都是不加on的
18             alert('a');
19         }, false);
20         
21         aBtn.addEventListener('click', function(){
22             alert('b');
23         }, false);        
24     }
25 };
26 </script>

封装事件绑定函数:

View Code
function myAddEvent(obj,ev,fn)  //对象obj ev事件 fn函数
{
    if(obj.attachEvent)
    {
         obj.attachEvent('on'+ev,fn);  //给对象添加事件绑定
     }
     else
     {
        obj.addEventListener(ev,fn,false);
     }
};

封装事件绑定函数和应用实例:

 1 <script>
 2 window.onload=function()
 3 {
 4     var aBtn=document.getElementById('btn');
 5     myAddEvent(aBtn,'click',function(){
 6         alert('a');
 7     });
 8     
 9     myAddEvent(aBtn,'click',function(){
10         alert('b');
11     });
12     
13     /*封装事件绑定*/
14     function myAddEvent(obj,ev,fn)  //对象obj ev事件 fn函数
15     {
16         if(obj.attachEvent)
17         {
18             obj.attachEvent('on'+ev,fn);  //给对象添加事件绑定
19         }
20         else
21         {
22             obj.addEventListener(ev,fn,false);
23         }
24     };
25 };
26 </script>

detachEvent(事件名称,函数)解除绑定

removeEventListener(事件名称,函数,false)解除事件绑定

封装解除事件绑定函数:

View Code
 1 <script>
 2 function myRmoveEvent(obj,ev,fn)
 3 {
 4     if(obj.detachEvent)
 5     {
 6         obj.detachEvent('on'+ev,fn)
 7     }
 8     else
 9     {
10         obj.removeEventListener(ev,fn,false);
11     }
12 };
13 </script>
<script>
function myRmoveEvent(obj,ev,fn)
{
    if(obj.detachEvent)
    {
        obj.detachEvent('on'+ev,fn)
    }
    else
    {
        obj.removeEventListener(ev,fn,false);
    }
};
</script>
原文地址:https://www.cnblogs.com/52css/p/2989215.html