一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務(wù)器之家 - 編程語言 - JavaScript - js教程 - JS addEventListener()和attachEvent()方法實現(xiàn)注冊事件

JS addEventListener()和attachEvent()方法實現(xiàn)注冊事件

2021-12-30 16:13C語言中文網(wǎng) js教程

這篇文章主要介紹了JS addEventListener()和attachEvent()方法實現(xiàn)注冊事件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

在 JavaScript 的 DOM 事件模型中,通過調(diào)用對象的 addEventListener() 方法注冊事件。用法如下:
element.addEventListener(String type, Function listener, boolean useCaptrue);

參數(shù)說明如下:

  • type:注冊事件的類型名。事件類型與事件屬性不同,事件類型名沒有 on 前綴。例如,對于事件屬性 onclick 來說,所對應(yīng)的事件類型為 click。
  • listener:監(jiān)聽函數(shù),即事件處理函數(shù)。在指定類型的事件發(fā)生時將調(diào)用該函數(shù)。在調(diào)用這個函數(shù)時,默認(rèn)傳遞給它的唯一參數(shù)是 event 對象。
  • useCaptrue:是一個布爾值。如果為 true,則指定的事件處理函數(shù)將在事件傳播的捕獲階段觸發(fā);如果為 false,則事件處理函數(shù)將在冒泡階段觸發(fā)。

示例1

下面示例使用 addEventListener() 為所有按鈕注冊 click 事件。首先,調(diào)用 document 的 getElementsByTagName() 方法捕獲所有按鈕對象;然后,使用 for 語句遍歷按鈕集(btn),并使用 addEventListener() 方法分別為每一個按鈕注冊事件函數(shù),獲取當(dāng)前對象所顯示的文本。

?
1
2
3
4
5
6
7
8
9
10
<button id="btn1" onclick="btn1();">按 鈕 1</button>
<button id="btn2" onclick="btn2(event);">按 鈕 2</button>
<script>
  var btn = document.getElementsByTagName("button"); //捕獲所有按鈕
  for(var i in btn){          //遍歷按鈕集合
   btn[i].addEventListener("click", function(){
    alert(this.innerHTML);
  }, true);  //為每個按鈕對象注冊一個事件處理函數(shù),定義在捕獲階段進(jìn)行響應(yīng)
  }
</script>

在瀏覽器中預(yù)覽,單擊不同的按鈕,則瀏覽器會自動顯示按鈕的名稱。效果如圖所示:

JS addEventListener()和attachEvent()方法實現(xiàn)注冊事件

使用 addEventListener() 方法能夠為多個對象注冊相同的事件處理函數(shù),也可以為同一個對象注冊多個事件處理函數(shù)。為同一個對象注冊多個事件處理函數(shù)對于模塊化開發(fā)非常有用。

示例2

在下面示例中,為段落文本注冊兩個事件:mouseover 和 mouseout。當(dāng)光標(biāo)移到段落文本上面時會顯示為藍(lán)色背景,而當(dāng)光標(biāo)移出段落文本時會自動顯示為紅色背景。這樣就不需要破壞文檔結(jié)構(gòu)為段落文本增加多個事件屬性。

?
1
2
3
4
5
6
7
8
9
10
<p id="p1">為對象注冊多個事件</p>
<script>
  var p1 = document.getElementById("p1"); //捕獲段落元素的句柄
  p1.addEventListener("mouseover", function () {
    this.style.background = 'blue';
  }, true); //為段落元素注冊第1個事件處理函數(shù)
  p1.addEventListener("mouseout", function () {
    this.style.background = 'blue';
  }, true); //為段落元素注冊第2個事件處理函數(shù)
</script>

IE 事件模型使用 attachEvent() 方法注冊事件。用法如下:

?
1
element.attachEvent(etype, eventName)

參數(shù)列表如下:

  • etype:設(shè)置事件類型,如 onclick、onkeyup、onmousemove 等。
  • eventName:設(shè)置時間名稱,也就是事件處理函數(shù)。

示例3

在下面示例中,為段落標(biāo)簽 <p> 注冊兩個事件:mouseover 和 mouseout,設(shè)計當(dāng)光標(biāo)經(jīng)過時,段落文本背景色顯示為藍(lán)色,當(dāng)光標(biāo)移開之后,背景色顯示為紅色。

?
1
2
3
4
5
6
7
8
9
10
<p id="p1">為對象注冊多個事件</p>
<script>
  var p1 = document.getElementById("p1"); //捕獲段落元素
  p1.attachEvent("onmouseover", function () {
    this.style.background = 'blue';
  }); //注冊mouseover事件
  p1.attachEvent("onmouseout", function () {
    this.style.background = 'red';
  }); //注冊mouseout事件
</script>

使用 attachEvent() 注冊事件時,其事件處理函數(shù)的調(diào)用對象不再是當(dāng)前事件對象本身,而是 window 對象,因此事件函數(shù)中的 this 就指向 window,而不是當(dāng)前對象,如果要獲取當(dāng)前對象,應(yīng)該使用 event 的 srcElement 屬性。

IE 事件模型中的 attachEvent() 方法第 1 個參數(shù)為事件類型名稱,需要加上 on 前綴,而使用 addEventListener() 方法時,則不需要這個 on 前綴,如 click。

到此這篇關(guān)于JS addEventListener()和attachEvent()方法實現(xiàn)注冊事件的文章就介紹到這了,更多相關(guān)JS addEventListener()和attachEvent()內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:http://c.biancheng.net/view/5940.html

延伸 · 閱讀

精彩推薦
  • js教程three.js中多線程的使用及性能測試詳解

    three.js中多線程的使用及性能測試詳解

    這篇文章主要給大家介紹了關(guān)于three.js中多線程的使用及性能測試的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考...

    郭先生的博客4442021-12-28
  • js教程JS addEventListener()和attachEvent()方法實現(xiàn)注冊事件

    JS addEventListener()和attachEvent()方法實現(xiàn)注冊事件

    這篇文章主要介紹了JS addEventListener()和attachEvent()方法實現(xiàn)注冊事件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,...

    C語言中文網(wǎng)9542021-12-30
  • js教程JavaScript canvas實現(xiàn)文字時鐘

    JavaScript canvas實現(xiàn)文字時鐘

    這篇文章主要為大家詳細(xì)介紹了JavaScript canvas實現(xiàn)文字時鐘,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    _Adoph6092021-12-29
  • js教程原生JS實現(xiàn)pc端輪播圖效果

    原生JS實現(xiàn)pc端輪播圖效果

    這篇文章主要為大家詳細(xì)介紹了原生JS實現(xiàn)pc端輪播圖效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    qq_1519846510082021-12-15
  • js教程微信小程序?qū)崿F(xiàn)簡單購物車功能

    微信小程序?qū)崿F(xiàn)簡單購物車功能

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)簡單購物車功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    mossbaoo5112021-12-22
  • js教程JavaScript canvas實現(xiàn)雨滴特效

    JavaScript canvas實現(xiàn)雨滴特效

    這篇文章主要為大家詳細(xì)介紹了JavaScript canvas實現(xiàn)雨滴特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    huangdong19316862021-12-29
  • js教程Selenium執(zhí)行JavaScript腳本的方法示例

    Selenium執(zhí)行JavaScript腳本的方法示例

    這篇文章主要介紹了Selenium執(zhí)行JavaScript腳本的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友...

    測試開發(fā)小記6232021-12-23
  • js教程詳解uniapp的全局變量實現(xiàn)方式

    詳解uniapp的全局變量實現(xiàn)方式

    這篇文章主要介紹了詳解uniapp的全局變量實現(xiàn)方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下...

    繭君10752021-12-29
主站蜘蛛池模板: 超级碰碰免费视频 | 91香蕉在线 | 91国内精品久久久久怡红院 | 日韩一本在线 | 国产免费好大好硬视频 | 天海翼最新 | 极品虎白女在线观看一线天 | 91天堂在线视频 | 91在线亚洲精品一区 | 超级乱淫变态伦短篇小说全集 | 91久久偷偷做嫩草影院免费 | 五月婷婷丁香色 | 22sihu国产精品视频影视资讯 | 亚洲精品一区二区三区中文字幕 | 欧美日韩久久中文字幕 | 久久亚洲一级α片 | juliaann大战七个黑人 | 久久精品国产亚洲AV麻豆欧美玲 | 精品国产品国语在线不卡丶 | 日本高清中文字幕视频在线 | 美女脱一净二净不带胸罩 | 99热这里只有精品在线播放 | 色综合天天综合网看在线影院 | 国产伦精品一区二区三区免费观看 | 91精品手机国产在线观 | 欧美精品日韩 | 成人欧美一区在线视频在线观看 | 亚洲国产综合网 | 亚洲免费视频在线 | 午夜成私人影院在线观看 | 古代翁熄系小说辣文 | 亚洲国产在线播放在线 | 99精品在免费线视频 | 2022最新a精品视频在线观看 | 国产亚洲精品九九久在线观看 | 成人综合久久综合 | 日韩欧美推理片免费看完整版 | 国产123区在线视频观看 | 三极片在线观看 | 日韩欧美国产在线 | 国产99re在线观看69热 |