1. 程式人生 > >ie8不支持currentTarget的解決辦法

ie8不支持currentTarget的解決辦法

鍵盤 bubble turn src ntp 描述 col 常用 code

一般綁定事件時,我們都會在事件回調方法裏用event.currentTarget獲取當前對象,但到ie8裏就獲取不到了。

解決方法如下:

var eve = event || window.event; //獲取事件對象
var objEle = eve.target || eve.srcElement; //獲取document 對象的引用

event 對象常用屬性和方法(W3C規範)
屬性描述IE非IEW3C
altKey 返回當事件被觸發時,"ALT" 是否被按下。 Yes Yes Yes
button 返回當事件被觸發時,哪個鼠標按鈕被點擊。
Yes Yes Yes
clientX 返回當事件被觸發時,鼠標指針的水平坐標。 Yes Yes Yes
clientY 返回當事件被觸發時,鼠標指針的垂直坐標。 Yes Yes Yes
ctrlKey 返回當事件被觸發時,"CTRL" 鍵是否被按下。 Yes Yes Yes
metaKey 返回當事件被觸發時,"meta" 鍵是否被按下。 No Yes Yes
relatedTarget
返回與事件的目標節點相關的節點。 No Yes Yes
screenX 返回當某個事件被觸發時,鼠標指針的水平坐標。 Yes Yes Yes
screenY 返回當某個事件被觸發時,鼠標指針的垂直坐標。 Yes Yes Yes
shiftKey 返回當事件被觸發時,"SHIFT" 鍵是否被按下。 Yes Yes Yes
bubbles 返回布爾值,指示事件是否是起泡事件類型。 No Yes Yes
cancelable 返回布爾值,指示事件是否可擁可取消的默認動作。 No Yes Yes
currentTarget 返回其事件監聽器觸發該事件的元素。 No Yes Yes
eventPhase 返回事件傳播的當前階段。 Yes
target 返回觸發此事件的元素(事件的目標節點)。 No Yes Yes
timeStamp 返回事件生成的日期和時間。 No Yes Yes
type 返回當前 Event 對象表示的事件的名稱。 Yes Yes Yes
方法描述IE非IEW3C
initEvent() 初始化新創建的 Event 對象的屬性。 No Yes Yes
preventDefault() 通知瀏覽器不要執行與事件關聯的默認動作。 No Yes Yes
stopPropagation() 不再派發事件。 No Yes Yes


除了上面W3C規範所規定的屬性和方法外,IE瀏覽器還支持以下屬性。

event 對象的屬性(IE特有)
屬性描述
cancelBubble 如果事件句柄想阻止事件傳播到包容對象,必須把該屬性設為 true。
fromElement 對於 mouseover 和 mouseout 事件,fromElement 引用移出鼠標的元素。
keyCode 對於 keypress 事件,該屬性聲明了被敲擊的鍵生成的 Unicode 字符碼。對於 keydown 和 keyup 事件,它指定了被敲擊的鍵的虛擬鍵盤碼。虛擬鍵盤碼可能和使用的鍵盤的布局相關。
offsetX,offsetY 發生事件的地點在事件源元素的坐標系統中的 x 坐標和 y 坐標。
returnValue 如果設置了該屬性,它的值比事件句柄的返回值優先級高。把這個屬性設置為 fasle,可以取消發生事件的源元素的默認動作。
srcElement 對於生成事件的 Window 對象、Document 對象或 Element 對象的引用。
toElement 對於 mouseover 和 mouseout 事件,該屬性引用移入鼠標的元素。
x,y 事件發生的位置的 x 坐標和 y 坐標,它們相對於用CSS動態定位的最內層包容元素。

ie8不支持currentTarget的解決辦法