位置:首頁 > 軟件操作教程 > 編程開發(fā) > JavaScript > 問題詳情

JavaScript Event 對象

提問人:劉團(tuán)圓發(fā)布時間:2020-11-27

■知識點

    event對象由系統(tǒng)自動創(chuàng)建,其屬性提供了有關(guān)事件的細(xì)節(jié)信息,其方法可以控制事件的傳播。在DOM事件模型中,event對象被傳遞給事件監(jiān)聽函數(shù),但是在IE事件模型中,它被存儲在window對象的event屬性中。

    下面列出了二級DOM事件標(biāo)準(zhǔn)定義的event對象屬性,如表所示。注意,這些屬性都是只讀屬性。

cancelable

返回布爾值,指示事件是否可以取消的默認(rèn)動作。如果使用preventDefaultO方法可以取消與 事件關(guān)聯(lián)的默認(rèn)動作,則返回值為true,否則為fasle

currentTarget

返回觸發(fā)事件的當(dāng)前節(jié)點,即當(dāng)前處理該事件的元素、文檔或窗口。在捕獲和冒泡階段,該 屬性是非常有用的,因為在這兩個階段,它不同于target屬性

eventPhase

返回事件傳播的當(dāng)前階段,包括捕獲階段(1)、目標(biāo)事件階段(2)和冒泡階段(3)

target

返回事件的目標(biāo)節(jié)點(觸發(fā)該事件的節(jié)點),如生成事件的元素、文檔或窗口

timeStamp

返回事件生成的日期和時間

type

返回當(dāng)前event對象表示的事件的名稱。如"submit” "load" "click"

下面列出了二級DOM事件標(biāo)準(zhǔn)定義的event對象方法,如表所示,IE事件模型不支持這些方法。

initEventO

初始化新創(chuàng)建的event對象的屬性

preventDefault()

通知瀏覽器不要執(zhí)行與事件關(guān)聯(lián)的默認(rèn)動作

stopPropagationQ

終止事件在傳播過程的捕獲、目標(biāo)處理或冒泡階段進(jìn)一步傳播。調(diào)用該方法后,該節(jié)點上處 理該事件的處理函數(shù)將被調(diào)用,但事件不再被分派到其他節(jié)點

IE7及其早期版本,以及IE怪異模式不支持標(biāo)準(zhǔn)的DOM事件模型,并且IE的event對象定義了一 組完全不同的屬性,如表所示。

描 述

cancelBubble

如果想在事件監(jiān)聽函數(shù)中阻止事件傳播到上級包含對象,必須把該屬性設(shè)為true

fromElement

對于mouseovermouseout事件,fromElement引用移出光標(biāo)的元素

keyCode

對于keypress事件,該屬性聲明了被敲擊的鍵生成的Unicode字符碼。對于keydownkeyup 事件,它指定了被敲擊的鍵的虛擬鍵盤碼。虛擬鍵盤碼可能和使用的鍵盤的布局相關(guān)

offsetXoffsetY

發(fā)生事件的地點在事件源元素的坐標(biāo)系統(tǒng)中的x坐標(biāo)和y坐標(biāo)

retumValue

如果設(shè)置了該屬性,它的值比事件監(jiān)聽函數(shù)的返回值優(yōu)先級髙。把這個屬性設(shè)置為fasle,可 以取消發(fā)生事件的源元素的默認(rèn)動作

srcElement

對于生成事件的window對象、document對象或element對象的引用

toElement

對于mouseovermouseout事件,該屬性引用移入光標(biāo)的元素

y

事件發(fā)生的位置的x坐標(biāo)和y坐標(biāo),它們相對于用CSS定位的最內(nèi)層包含元素

    為了兼容IE和DOM兩種事件模型,可以使用下面的表達(dá)式進(jìn)行兼容。

    var event = event || window.event; //兼容不同模型的 event 對象

    上面代碼右側(cè)是一個選擇運算表達(dá)式,如果事件監(jiān)聽函數(shù)存在event實參,則使用event形參來傳遞事件信息,如果不存在event參數(shù),則調(diào)用window對象的event屬性來獲取事件信息。把上面的表達(dá)式放在事件監(jiān)聽函數(shù)中即可進(jìn)行兼容。


繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部