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

JavaScript Event 對(duì)象

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

■知識(shí)點(diǎn)

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

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

cancelable

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

currentTarget

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

eventPhase

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

target

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

timeStamp

返回事件生成的日期和時(shí)間

type

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

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

說(shuō)

initEventO

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

preventDefault()

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

stopPropagationQ

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

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

描 述

cancelBubble

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

fromElement

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

keyCode

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

offsetX、offsetY

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

retumValue

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

srcElement

對(duì)于生成事件的window對(duì)象、document對(duì)象或element對(duì)象的引用

toElement

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

y

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

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

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

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


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

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