event對象的兼容性


最近在調試項目的時候,發現IE和Chrome都顯示正常,就是FireFox異常,F12查看控制台,發現報錯:window.event is undefined。檢查代碼中定義的事件方法中獲取事件對象直接使用的window.event,去掉window后,IE異常,但是FF正常,坑啊。。。想當然以為全局引入了jquery,就不用做這方面的兼容,其實,只有在jquery封裝的事件方法里使用event才可以不考慮兼容,其他的自己寫的方法即便會在jquery的事件里調用,還是要兼容。現在總結一下,以后備用。

1. event

   IE:直接使用event就行,為保險起見,寫成window.event;
   FF:window.event要報錯,提示undefined,經查詢,發現要用參數引導才能使用;
   原生js兼容寫法: 
 

function foo(event){
    var evt = window.event||event;
}

   如果有引入jquery:

  

$(".btn").click(function(event){
    alert(event.type);
})

 

2. event.target屬性: 獲取觸發事件的元素對象

    原生js:
   

function foo(event){
    var evt = window.event||event;
    var targetObj = evt.target||evt.srcElement;
}

 


   jquery寫法:

   

$(".btn").click(function(event){
    alert(event.target);
})

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM