跨瀏覽器之事件對象

因此瀏覽器都支持事件對象,可是支持的方式不一樣。用的比較多的屬性就是:瀏覽器

(1)阻止冒泡事件。函數

(2)阻止默認事件。spa

(3)get事件的目標。code

1.DOM中的事件對象對象

在DOM中,不管是在DOM0級仍是DOM2級中,也不論什麼方法,都會傳入一個event對象。blog

在DOM中,阻止冒泡事件用的是event下的stopPropagation()方法。阻止默認事件用的是preventDefault()。get事件的目標是用的event下的target屬性。事件

2.IE中的事件對象get

在IE中事件對象是在window下的,用window.event來使用。io

阻止冒泡事件用的是cancelBubble屬性來控制,默認爲false,設置爲true能夠阻止冒泡事件。阻止默認事件用的是returnValue,默認爲true,設置爲false能夠阻止。get事件的目標是用的window.event下的srcElement屬性。event

綜合以上,能夠整合出跨瀏覽器使用事件對象的函數:

 1 var eventMethod = {
 2      getEvent : function(event){//get事件對象
 3                     return event ? event : window.event;
 4                 }
 5      getTarget : function(event){//get事件的目標
 6                     return event.target ? event.target : window.event.srcElement;
 7                 }
 8      preventDefault : function(event){//阻止默認事件
 9                         if(event.preventDefault){
10                             event.preventDefault();
11                         }else{
12                             window.event.returnValue = false;
13                         }
14                     }
15      stopPropagetion : function(event){//中止冒泡事件
16                         if(event.stopPropagation){
17                             event.stopPropagation();
18                         }else{
19                             window.event.cancelBubble = true;
20                         }
21                     }
22 }

經過以上對象,就能夠在每一個瀏覽器中放心大膽的使用事件的對象了:

1 oA.onclick = function(event){
2     eventMethod.getEvent(event);
3 }
相關文章
相關標籤/搜索