国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

《Javascript高級(jí)程序設(shè)計(jì) (第三版)》第13章 事件

tinylcy / 969人閱讀

摘要:一般化的變動(dòng)事件。沒(méi)有對(duì)應(yīng)的級(jí)事件事件被分散到其他類別中。與事件關(guān)聯(lián)的視圖。布爾值表示按下的鍵的鍵碼。布爾值表示事件是否應(yīng)該冒泡。創(chuàng)建事件對(duì)象初始化事件對(duì)象觸發(fā)事件

模擬事件 DOM中的事件模擬

可以在 document 對(duì)象上使用 createEvent() 方法創(chuàng)建 event 對(duì)象。

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í)事件(HTML 事件被分散到其他類 別中)。

在創(chuàng)建了 event 對(duì)象之后,還需要使用與事件有關(guān)的信息對(duì)其進(jìn)行初始化。每種類型的 event 對(duì)象都有一個(gè)特殊的方法,為它傳入適當(dāng)?shù)臄?shù)據(jù)就可以初始化該 event 對(duì)象。不同類型的這個(gè)方法的名字也不相同,具體要取決于 createEvent() 中使用的參數(shù)。模擬事件的最后一步就是觸發(fā)事件。這一步需要使用 dispatchEvent() 方法,所有支持事件的DOM 節(jié)點(diǎn)都支持這個(gè)方法。調(diào)用 dispatchEvent() 方法時(shí),需要傳入一個(gè)參數(shù),即表示要觸發(fā)事件的 event 對(duì)象。觸發(fā)事件之后,該事件就躋身“官方事件”之列了,因而能夠照樣冒泡并引發(fā)相應(yīng)事件處理程序的執(zhí)行。

模擬鼠標(biāo)事件

創(chuàng)建鼠標(biāo)事件對(duì)象的方法是為 createEvent() 傳入字符串 "MouseEvents" 。返回的對(duì)象有一個(gè)名為 initMouseEvent() 方法,用于指定與該鼠標(biāo)事件有關(guān)的信息。這些參數(shù)的含義如下。

type (字符串):表示要觸發(fā)的事件類型,例如 "click" 。

bubbles (布爾值):表示事件是否應(yīng)該冒泡。為精確地模擬鼠標(biāo)事件,應(yīng)該把這個(gè)參數(shù)設(shè)置為true 。

cancelable (布爾值):表示事件是否可以取消。為精確地模擬鼠標(biāo)事件,應(yīng)該把這個(gè)參數(shù)設(shè)置為 true 。

view (AbstractView):與事件關(guān)聯(lián)的視圖。這個(gè)參數(shù)幾乎總是要設(shè)置為 document.defaultView 。

detail (整數(shù)):與事件有關(guān)的詳細(xì)信息。這個(gè)值一般只有事件處理程序使用,但通常都設(shè)置為 0 。

screenX (整數(shù)):事件相對(duì)于屏幕的 X 坐標(biāo)。

screenY (整數(shù)):事件相對(duì)于屏幕的 Y 坐標(biāo)。

clientX (整數(shù)):事件相對(duì)于視口的 X 坐標(biāo)。

clientY (整數(shù)):事件想對(duì)于視口的 Y 坐標(biāo)。

ctrlKey (布爾值):表示是否按下了 Ctrl 鍵。默認(rèn)值為 false 。

altKey (布爾值):表示是否按下了 Alt 鍵。默認(rèn)值為 false 。

shiftKey (布爾值):表示是否按下了 Shift 鍵。默認(rèn)值為 false 。

metaKey (布爾值):表示是否按下了 Meta 鍵。默認(rèn)值為 false 。

button (整數(shù)):表示按下了哪一個(gè)鼠標(biāo)鍵。默認(rèn)值為 0 。

relatedTarget (對(duì)象):表示與事件相關(guān)的對(duì)象。這個(gè)參數(shù)只在模擬 mouseover 或 mouseout時(shí)使用。

initMouseEvent() 方法的這些參數(shù)是與鼠標(biāo)事件的 event 對(duì)象所包含的屬性一一對(duì)應(yīng)的。其中,前 4 個(gè)參數(shù)對(duì)正確地激發(fā)事件至關(guān)重要,因?yàn)闉g覽器要用到這些參數(shù);而剩下的所有參數(shù)只有在事件處理程序中才會(huì)用到。當(dāng)把 event 對(duì)象傳給 dispatchEvent() 方法時(shí),這個(gè)對(duì)象的 target屬性會(huì)自動(dòng)設(shè)置。

var btn = document.getElementById("myBtn");
//創(chuàng)建事件對(duì)象
var event = document.createEvent("MouseEvents");
//初始化事件對(duì)象
event.initMouseEvent("click", true, true, document.defaultView, 0, 0, 0, 0, 0,
false, false, false, false, 0, null);
//觸發(fā)事件
btn.dispatchEvent(event);

模擬鍵盤(pán)事件
調(diào)用 createEvent() 并傳入"KeyboardEvent" 就可以創(chuàng)建一個(gè)鍵盤(pán)事件。返回的事件對(duì)象會(huì)包含一個(gè) initKeyEvent() 方法,這個(gè)方法接收下列參數(shù)。

type (字符串):表示要觸發(fā)的事件類型,如 "keydown" 。

bubbles (布爾值):表示事件是否應(yīng)該冒泡。為精確模擬鼠標(biāo)事件,應(yīng)該設(shè)置為 true 。

cancelable (布爾值):表示事件是否可以取消。為精確模擬鼠標(biāo)事件,應(yīng)該設(shè)置為 true 。

view ( AbstractView ):與事件關(guān)聯(lián)的視圖。這個(gè)參數(shù)幾乎總是要設(shè)置為 document.defaultView 。

key (布爾值):表示按下的鍵的鍵碼。

location (整數(shù)):表示按下了哪里的鍵。0 表示默認(rèn)的主鍵盤(pán),1 表示左,2 表示右,3 表示 數(shù)字鍵盤(pán),4表示移動(dòng)設(shè)備(即虛擬鍵盤(pán)),5 表示手柄。

modifiers (字符串):空格分隔的修改鍵列表,如 "Shift" 。

repeat (整數(shù)):在一行中按了這個(gè)鍵多少次。

var textbox = document.getElementById("myTextbox"),event;

if (document.implementation.hasFeature("KeyboardEvents", "3.0")){
    event = document.createEvent("KeyboardEvent");
//初始化事件對(duì)象
    event.initKeyboardEvent("keydown", true, true, document.defaultView, "a",0, "Shift", 0);
}
//觸發(fā)事件
textbox.dispatchEvent(event)

模擬其他事件
模擬變動(dòng)事件和HTML 事件。

var event = document.createEvent("HTMLEvents");
event.initEvent("focus", true, false);
target.dispatchEvent(event);

自定義 DOM 事件

自定義事件不是由 DOM 原生觸發(fā)的,它的目的是讓開(kāi)發(fā)人員創(chuàng)建自己的事件。要?jiǎng)?chuàng)建新的自定義事件,可調(diào)用 createEvent("CustomEvent") 。返回的對(duì)象有一個(gè)名為 initCustomEvent() 的方法。

type (字符串):觸發(fā)的事件類型,例如 "keydown"。

bubbles (布爾值):表示事件是否應(yīng)該冒泡。

cancelable (布爾值):表示事件是否可以取消。

detail (對(duì)象):任意值,保存在 event 對(duì)象的 detail 屬性中。

var div = document.getElementById("myDiv"),event;
EventUtil.addHandler(div, "myevent", function(event){
    alert("DIV: " + event.detail);
});
EventUtil.addHandler(document, "myevent", function(event){
    alert("DOCUMENT: " + event.detail);
});
if (document.implementation.hasFeature("CustomEvents", "3.0")){
    event = document.createEvent("CustomEvent");
    event.initCustomEvent("myevent", true, false, "Hello world!");
    div.dispatchEvent(event);
}
IE中的事件模擬

調(diào)用 document.createEventObject() 方法可以在 IE 中創(chuàng)建 event對(duì)象。(不接受參數(shù),結(jié)果會(huì)返回一個(gè)通用的 event 對(duì)象)
目標(biāo)上調(diào)用 fireEvent()方法,這個(gè)方法接受兩個(gè)參數(shù):事件處理程序的名稱和 event 對(duì)象。

var btn = document.getElementById("myBtn");
//創(chuàng)建事件對(duì)象
var event = document.createEventObject();
//初始化事件對(duì)象
event.screenX = 100;
event.screenY = 0;
event.clientX = 0;
event.clientY = 0;
event.ctrlKey = false;
event.altKey = false;
event.shiftKey = false;
event.button = 0;
//觸發(fā)事件
btn.fireEvent("onclick", event);

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/89881.html

相關(guān)文章

  • JavaScript書(shū)籍測(cè)評(píng)

    摘要:前言今天和大家一起聊聊的推薦書(shū)籍,每一本都是精選,做前端開(kāi)發(fā)的朋友們?nèi)绻麤](méi)讀過(guò),可以嘗試一下。如果怕麻煩,也可以關(guān)注曉舟報(bào)告,發(fā)送獲取書(shū)籍,四個(gè)字,就可以得到電子書(shū)的提取碼。 前言 今天和大家一起聊聊JavaScript的推薦書(shū)籍,每一本都是精選,做前端開(kāi)發(fā)的朋友們?nèi)绻麤](méi)讀過(guò),可以嘗試一下。下面給大家簡(jiǎn)單介紹了書(shū)的內(nèi)容,還有讀書(shū)的方法,希望可以幫大家提升讀書(shū)效率。 一、《JavaScr...

    X1nFLY 評(píng)論0 收藏0
  • 重讀《學(xué)習(xí)JavaScript數(shù)據(jù)結(jié)構(gòu)與算法-三版》- 3 數(shù)組(二)

    摘要:定場(chǎng)詩(shī)守法朝朝憂悶,強(qiáng)梁夜夜歡歌損人利己騎馬騾,正值公平挨餓修橋補(bǔ)路瞎眼,殺人放火兒多我到西天問(wèn)我佛,佛說(shuō)我也沒(méi)轍前言讀學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法第章數(shù)組,本小節(jié)將繼續(xù)為各位小伙伴分享數(shù)組的相關(guān)知識(shí)數(shù)組的新功能。 定場(chǎng)詩(shī) 守法朝朝憂悶,強(qiáng)梁夜夜歡歌; 損人利己騎馬騾,正值公平挨餓; 修橋補(bǔ)路瞎眼,殺人放火兒多; 我到西天問(wèn)我佛,佛說(shuō):我也沒(méi)轍! 前言 讀《學(xué)習(xí)JavaScript數(shù)據(jù)結(jié)構(gòu)與算法...

    William_Sang 評(píng)論0 收藏0
  • 如果想成為一名頂尖的前端,這份書(shū)單你一定要收藏!

    摘要:其中負(fù)載均衡那一節(jié),基本上是參考的權(quán)威指南負(fù)載均衡的內(nèi)容。開(kāi)發(fā)指南讀了一半,就是看這本書(shū)理解了的事件循環(huán)。哈哈創(chuàng)京東一本騙錢的書(shū)。 歡迎大家前往騰訊云+社區(qū),獲取更多騰訊海量技術(shù)實(shí)踐干貨哦~ 本文由騰訊IVWEB團(tuán)隊(duì) 發(fā)表于云+社區(qū)專欄作者:link 2014年一月以來(lái),自己接觸web前端開(kāi)發(fā)已經(jīng)兩年多了,記錄一下自己前端學(xué)習(xí)路上看過(guò)的,以及道聽(tīng)途說(shuō)的一些書(shū),基本上按照由淺入深來(lái)介紹...

    callmewhy 評(píng)論0 收藏0
  • 如果想成為一名頂尖的前端,這份書(shū)單你一定要收藏!

    摘要:其中負(fù)載均衡那一節(jié),基本上是參考的權(quán)威指南負(fù)載均衡的內(nèi)容。開(kāi)發(fā)指南讀了一半,就是看這本書(shū)理解了的事件循環(huán)。哈哈創(chuàng)京東一本騙錢的書(shū)。 歡迎大家前往騰訊云+社區(qū),獲取更多騰訊海量技術(shù)實(shí)踐干貨哦~ 本文由騰訊IVWEB團(tuán)隊(duì) 發(fā)表于云+社區(qū)專欄作者:link 2014年一月以來(lái),自己接觸web前端開(kāi)發(fā)已經(jīng)兩年多了,記錄一下自己前端學(xué)習(xí)路上看過(guò)的,以及道聽(tīng)途說(shuō)的一些書(shū),基本上按照由淺入深來(lái)介紹...

    Scliang 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

tinylcy

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<