日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

097_事件监听器

發布時間:2025/4/17 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 097_事件监听器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. addEventListener()方法

1.1. addEventListener()方法為指定元素添加事件處理程序。

1.2. 語法

element.addEventListener(event, function, useCapture);

第一個參數是事件的類型(比如: "click"或"mousedown")。

第二個參數是當事件發生時我們需要調用的函數。

第三個參數是布爾值, 指定使用事件冒泡還是事件捕獲。此參數是可選的。

1.3. 您能夠向一個元素添加多個事件處理程序。

document.getElementById("d1").addEventListener("mouseover", myFunction); document.getElementById("d1").addEventListener("mousemove", mySecondFunction); document.getElementById("d1").addEventListener("mouseout", myThirdFunction);

1.4. addEventListener()方法為元素附加事件處理程序而不會覆蓋已有的事件處理程序, 因此您能夠向一個元素添加多個相同類型的事件處理程序, 例如兩個"click"事件。

document.getElementById("myBtn").addEventListener("click", myFunction); document.getElementById("myBtn").addEventListener("click", mySecondFunction);

1.5. 請勿對事件使用"on"前綴; 請使用"click"代替"onclick"。

1.6. 當使用addEventListener()方法時, JavaScript與html標記是分隔的, 已達到更佳的可讀性; 即使在不控制html標記時也允許您添加事件監聽器。

1.7. addEventListener()允許您將事件監聽器添加到任何html對象上, 還可以是window對象, 甚至其他支持事件的對象, 比如: xmlHttpRequest對象。

window.addEventListener("resize", function(){document.getElementById("demo").innerHTML = '用戶調整窗口大小'; });

2. 事件冒泡還是事件捕獲?

2.1. 在html DOM中有兩種事件傳播的方法: 冒泡和捕獲。

2.2. 事件傳播是一種定義當發生事件時元素次序的方法。假如<div>元素內有一個<p>, 然后用戶點擊了這個<p>元素, 應該首先處理哪個元素"click"事件?

2.2.1. 在冒泡中, 最內側元素的事件會首先被處理, 然后是更外側的: 首先處理<p>元素的點擊事件, 然后是<div>元素的點擊事件。

2.2.2. 在捕獲中, 最外側元素的事件會首先被處理, 然后是更內側的: 首先處理<div>元素的點擊事件, 然后是<p>元素的點擊事件。

2.3. 在addEventListener()方法中, 你能夠通過使用useCapture參數來規定傳播類型。useCapture默認值是 false,將使用冒泡傳播,如果該值設置為 true,則事件使用捕獲傳播。

2.4. 實例

document.getElementById("myBtn").addEventListener("click", myFunction, true); document.getElementById("myBtn").addEventListener("click", myFunction, true);

3. removeEventListener()方法

3.1. removeEventListener()方法會刪除已通過addEventListener()方法附加的事件處理程序。

3.2. 實例

element.removeEventListener("mousemove", myFunction);

4. 例子

4.1. 代碼

<!DOCTYPE html> <html><head><meta charset="utf-8" /><title>事件監聽器</title><style type="text/css">div {width: 150px;height: 90px;line-height: 90px;background-color: #D94A38;margin-top: 20px;text-align: center;}p {width: 150px;height: 32px;line-height: 32px;background-color: green;text-align: center;}</style></head><body><div id="div1"><p id="p1">冒泡</p></div><div id="div2"><p id="p2">捕獲</p></div> <div id="div3"><p id="p3">捕獲</p></div> <script type="text/javascript">var div1 = document.getElementById('div1'), p1 = document.getElementById('p1');var div2 = document.getElementById('div2'), p2 = document.getElementById('p2');var div3 = document.getElementById('div3'), p3 = document.getElementById('p3');function div1Click(e){console.log('div1被點擊了');} function p1Click(e){console.log('p1被點擊了');}function div2Click(e){console.log('div2被點擊了');}function p2Click(e){console.log('p2被點擊了');}function div3Click(e){console.log('div3被點擊了');}function p3Click(e){console.log('p3被點擊了');}div1.addEventListener('click', div1Click, false);p1.addEventListener('click', p1Click, false);div2.addEventListener('click', div2Click, true);p2.addEventListener('click', p2Click, true);// 只要外層元素是捕獲, 事件就是捕獲傳播類型div3.addEventListener('click', div3Click, true);p3.addEventListener('click', p3Click, false);</script></body> </html>

4.2. 點擊冒泡

4.3. 點擊第一個捕獲

?4.4. 點擊第二個捕獲

總結

以上是生活随笔為你收集整理的097_事件监听器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。