dom2

事件冒泡:即事件最開始由最具體的元素接受然後逐級向上傳播至最不具體的那個節點(比較主要)
事件捕獲:不太具體的事件更早接收到事件,最具體的節點最後接收到事件

html事件的缺點:html和js緊密的耦合在一起

dom0級事件處理程序:document.getElementById('btn').οnclick=function(){};

dom2級事件處理程序 :  addeventlistener()
btn.addEventListener('click',showmes,false)       false指添加到事件冒泡,兼容大部分瀏覽器


ie8及更早的版本只支持事件冒泡


ie只支持attachEvent();

根據瀏覽器判斷添加事件的方法

var eventUtil={
     //添加句柄
     addHandler:function(element,type,handler){
          if(element.addEventListener)
               element.addEventListener(type,handler,false);
          else if(element.attachEvent)
               element.attachEvent('on'+type,handler);
          else
               element['on'+type]=handler;
               //element.οnclick===element['onclick'];
     },
     
     //刪除句柄
     removeHandler:function(element,type,handler){
          if(element.removeEventListener)
               element.removeEventListener(type,handler,false);
          else if(element.detachEvent)
               element.detachEvent('on'+type,handler);
          else
               element['on'+type]=null;
     },
     
     getEvent:function(event){
          return event?event:window.event;
     },
     preventDefault:function(event){
          if(event.preventDefault){
               event.preventDefault();
          }else{
              event.returnValue=false; 
          }
     }
}



事件對象:在觸發DOM上的事件都會產生一個對象
事件對象event
dom裏的事件對象:
1.type屬性
2.target 屬性
3。//阻止事件冒泡(阻止事件傳播)
event.stopPropagation();

4.//阻止事件的默認行爲
event.preventDefault();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章