前幾天,在用angularJs實現一個功能,點擊后獲取event的x,y坐標時,IE9, chrome下功能正常。但是firefox報event 未定義。初始代碼如下:
html:
XML/HTML Code復制內容到剪貼板
<div class="container">
<span class="glyphicon glyphicon-plus"></span>
<a href="#" class="linkstyle plus" ng-click="addResPop()"/>addRes</a>
</div>
js:
JavaScript Code復制內容到剪貼板
$scope.addResPop = function () {
var x = window.event.screenX;//ff報undefined
….
}
結果,ff下click后控制臺報錯了。查了資料后,知道瀏覽器event對象的差異性如下:
1、在IE中event作為window對象的一個屬性可以直接使用 window.event;
2、在W3標準中,event對象必須作為參數傳給事件處理函數,前提是我們代碼中要用的時候。所以,在標準兼容的瀏覽器(Mozilla,Safari,Opera)中訪問事件對象,要這么做:
XML/HTML Code復制內容到剪貼板
<a href="#" class="linkstyle plus" ng-click="addResPop($event)"/>addRes</a>
$scope.addResPop = function($event) {
….
}
注意這里要用angular的$event,它們已經替開發者屏蔽了瀏覽器的兼容問題。其實用jQuery來綁定click事件,獲取event對象的結果跟angular獲取的$event一摸一樣,例如:
XML/HTML Code復制內容到剪貼板
$("body").click(function(event){
……
})
了解瀏覽器的兼容問題,并利用三方庫屏蔽常見的兼容問題。
以上就是小編為大家帶來的淺談firefox 的event事件處理的全部內容了,希望大家多多支持腳步之家。
新聞熱點
疑難解答