最近在調試項目的時候,發現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); })