js事件(上)

事件流:冒泡流  捕捉流  dom事件流
 
html指定事件处理程序
事件处理程序:on+event:onclick;onmouse;onload;
问题:在没载入代码时,点击元素会报错。html与js高度耦合。
    
dome0级指定事件
element.onclick="";绑定
element.onclic=null; 删除
    
程序运行作用域在元素内部。
问题:不能同时绑定多个事件     
dom2
addEventlistener();
removeEventener();
都有3个参数,element,event,false/ture.
event前没有on如:click;
 
false为冒泡阶段触发,true为捕获阶段。一般用false(兼容性;ie8之前不支持捕获)
参数相同才能删除,匿名函数不能删除。
   
优点:一个元素可添加多个事件,按添加顺序运行。
 
ie事件处理程序
   
attachEvent();detaEvent();
两个参数,处理程序前有on;程序运行作用域为全局(注意)
一个程序可绑定多个事件,运行顺序与绑定顺序相反。
 
跨浏览器事件处理程序。
var EventUtl={
     addHandler:function(element,type,handler){
          if(element.addEventListene){
               element.addlEventListener(element,type,handler)
          }else if(element.attachEvent){
          element.attachEvent(element,"on"+type.handler)
          }
          else{
               element["on"+type]=handler;
          }
     removeHandler:function(){
          code...
     }
     }
}                    
缺陷:没有考虑到所用浏览器问题;ie中作用域的问题,dom0每个事件只支持一个事件处理函数。不过已经够用。
 
               
原文地址:https://www.cnblogs.com/beierweiwei/p/5484453.html