本文實(shí)例講述了JavaScript中的模擬事件和自定義事件。分享給大家供大家參考,具體如下:
前面介紹了JavaScript中為事件指定處理程序的五種方式和JavaScript的事件對(duì)象event。
下面介紹JavaScript中的模擬事件和自定義事件。
1、DOM中的事件模擬
1) DOM中的事件模擬有以下3個(gè)步驟:
步驟1:創(chuàng)建事件對(duì)象event
可以在document對(duì)象上使用createEvent()
方法創(chuàng)建event對(duì)象,此方法接收一個(gè)參數(shù),即要?jiǎng)?chuàng)建的事件類(lèi)型的字符串。在DOM2級(jí)中這些字符串都使用英文復(fù)數(shù)形式,而在DOM3級(jí)中都變成了單數(shù)。這個(gè)字符串可以是以下幾個(gè)字符串之一:
① UIEvents:一般化的UI事件,鼠標(biāo)事件和鍵盤(pán)事件都繼承自UI事件,DOM3級(jí)中是UIEvent;
② MouseEvents:一般化的鼠標(biāo)事件,DOM3級(jí)中是MouseEvent;
③ MutationEvents:一般化的DOM變動(dòng)事件,DOM3級(jí)中是MutationEvent;
④ HTMLEvents:一般化的HTML事件,沒(méi)有對(duì)應(yīng)的DOM3級(jí)事件,被分散到 其他類(lèi)別中。
步驟2:初始化事件對(duì)象
使用與事件有關(guān)的信息對(duì)其進(jìn)行初始化,每種類(lèi)型的event對(duì)象都有一個(gè)特殊的方法,為它傳入適當(dāng)?shù)臄?shù)據(jù)就可以初始化該event對(duì)象,不同類(lèi)型的方法的名字也不相同,具體要取決于createEvent()
中使用的參數(shù)。
步驟3:觸發(fā)事件
使用dispatch()
方法,此方法接收一個(gè)參數(shù),即要觸發(fā)事件的event對(duì)象。
2) 模擬鼠標(biāo)事件:
使用createEvent()
方法創(chuàng)建event對(duì)象,傳入字符串"MouseEvents",返回的對(duì)象有一個(gè)名為initMouseEvent()
方法,用于指定與該鼠標(biāo)事件有關(guān)的信息。
模擬按鈕的單擊事件:
var btn = document.getElementsByTagNames("button")[0]; var event = document.createEvent("MouseEvents"); event.initMouseEvent("click", true, true, document.defaultView, 0, 0, 0, 0, 0, false, false, false, 0, null); btn.dispatchEvent(event);
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
當(dāng)前題目:JavaScript中的模擬事件和自定義事件實(shí)例分析-創(chuàng)新互聯(lián)
鏈接URL:http://aaarwkj.com/article6/idgog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、建站公司、面包屑導(dǎo)航、動(dòng)態(tài)網(wǎng)站、網(wǎng)站內(nèi)鏈、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容