最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS中自定義事件的使用與觸發(fā)操作實例分析

 更新時間:2019年11月01日 11:54:18   作者:蒼青浪  
這篇文章主要介紹了JS中自定義事件的使用與觸發(fā)操作,結(jié)合實例形式分析了JavaScript自定義事件的創(chuàng)建、監(jiān)聽、觸發(fā)相關原理與使用技巧,需要的朋友可以參考下

本文實例講述了JS中自定義事件的使用與觸發(fā)操作。分享給大家供大家參考,具體如下:

1. 事件的創(chuàng)建

JS中,最簡單的創(chuàng)建事件方法,是使用Event構造器:

var myEvent = new Event('event_name');

但是為了能夠傳遞數(shù)據(jù),就需要使用 CustomEvent 構造器:

var myEvent = new CustomEvent('event_name', {
 detail:{
  // 將需要傳遞的數(shù)據(jù)寫在detail中,以便在EventListener中獲取
  // 數(shù)據(jù)將會在event.detail中得到
 },
});

2. 事件的監(jiān)聽

JS的EventListener是根據(jù)事件的名稱來進行監(jiān)聽的,比如我們在上文中已經(jīng)創(chuàng)建了一個名稱為‘event_name' 的事件,那么當某個元素需要監(jiān)聽它的時候,就需要創(chuàng)建相應的監(jiān)聽器:

//假設listener注冊在window對象上
window.addEventListener('event_name', function(event){
 // 如果是CustomEvent,傳入的數(shù)據(jù)在event.detail中
 console.log('得到數(shù)據(jù)為:', event.detail);

 // ...后續(xù)相關操作
});

至此,window對象上就有了對‘event_name' 這個事件的監(jiān)聽器,當window上觸發(fā)這個事件的時候,相關的callback就會執(zhí)行。

3. 事件的觸發(fā)

對于一些內(nèi)置(built-in)的事件,通常都是有一些操作去做觸發(fā),比如鼠標單擊對應MouseEvent的click事件,利用鼠標(ctrl+滾輪上下)去放大縮小頁面對應WheelEvent的resize事件。
然而,自定義的事件由于不是JS內(nèi)置的事件,所以我們需要在JS代碼中去顯式地觸發(fā)它。方法是使用 dispatchEvent 去觸發(fā)(IE8低版本兼容,使用fireEvent):

// 首先需要提前定義好事件,并且注冊相關的EventListener
var myEvent = new CustomEvent('event_name', { 
 detail: { title: 'This is title!'},
});
window.addEventListener('event_name', function(event){
 console.log('得到標題為:', event.detail.title);
});
// 隨后在對應的元素上觸發(fā)該事件
if(window.dispatchEvent) { 
 window.dispatchEvent(myEvent);
} else {
 window.fireEvent(myEvent);
}
// 根據(jù)listener中的callback函數(shù)定義,應當會在console中輸出 "得到標題為: This is title!"

需要特別注意的是,當一個事件觸發(fā)的時候,如果相應的element及其上級元素沒有對應的EventListener,就不會有任何回調(diào)操作。

對于子元素的監(jiān)聽,可以對父元素添加事件托管,讓事件在事件冒泡階段被監(jiān)聽器捕獲并執(zhí)行。這時候,使用event.target就可以獲取到具體觸發(fā)事件的元素。

PS:這里再為大家附上javascript系統(tǒng)自帶事件參考表供大家參考查詢:

javascript事件與功能說明大全:
http://tools.jb51.net/table/javascript_event

更多關于JavaScript相關內(nèi)容可查看本站專題:《JavaScript事件相關操作與技巧大全》、《JavaScript常用函數(shù)技巧匯總》、《javascript面向?qū)ο笕腴T教程》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構與算法技巧總結(jié)》及《JavaScript數(shù)學運算用法總結(jié)

希望本文所述對大家JavaScript程序設計有所幫助。

相關文章

最新評論

嘉义市| 台北市| 周宁县| 板桥市| 遵化市| 惠来县| 惠来县| 垦利县| 宁强县| 海淀区| 汤原县| 安溪县| 宁波市| 浦城县| 阿拉善左旗| 资兴市| 射阳县| 教育| 马关县| 泸水县| 陆良县| 界首市| 清徐县| 合阳县| 长垣县| 贵定县| 西昌市| 阿瓦提县| 明溪县| 天祝| 建瓯市| 邵东县| 江川县| 钦州市| 剑河县| 凉山| 朝阳区| 库车县| 长白| 邵东县| 蛟河市|