JavaScript的事件監(jiān)聽你了解嗎
1. 什么是事件監(jiān)聽 ?
事件監(jiān)聽就是計(jì)算機(jī)對(duì)事件進(jìn)行監(jiān)聽,知道什么時(shí)候發(fā)生了這個(gè)事件,從而執(zhí)行一些寫好的程序。
那么,它的常用方法有哪些呢 ?讓我們一起來看看吧 !
2. DOM0 級(jí)事件監(jiān)聽
DOM0 級(jí)事件監(jiān)聽:
給元素設(shè)置它們的onxxx
屬性(e.g., onclick)
對(duì)于 DOM0 級(jí)事件監(jiān)聽 ,它只能監(jiān)聽冒泡階段
2.1) 常見的頁面事件監(jiān)聽
事件名 | 事件描述 |
---|---|
onload | 當(dāng)頁面或圖像被完成加載 |
onunload | 當(dāng)用戶退出頁面 |
2.2) 常見的鼠標(biāo)事件監(jiān)聽
事件名 | 事件描述 |
---|---|
onclick | 當(dāng)鼠標(biāo)單擊某個(gè)元素 |
ondblclick | 當(dāng)鼠標(biāo)雙擊某個(gè)元素 |
onmousedown | 當(dāng)鼠標(biāo)按鍵在某個(gè)元素上按下 |
onmouseup | 當(dāng)鼠標(biāo)按鍵在某個(gè)元素上松開 |
onmousemove | 當(dāng)鼠標(biāo)按鍵在某個(gè)元素上移動(dòng) |
onmouseenter | 當(dāng)鼠標(biāo)移動(dòng)到某個(gè)元素上 (進(jìn)入到某個(gè)元素區(qū)域時(shí)) |
onmouseleave | 當(dāng)鼠標(biāo)離開某個(gè)元素 |
其中onmouseenter
與onmouseover
類似,onmouseleave
與onmouseout
類似;
它們兩者的區(qū)別:onmouseenter
與onmouseleave
事件不支持冒泡,另外兩個(gè)支持事件冒泡;
所以,onmouseenter
與onmouseleave
搭配使用,onmouseover
與onmouseout
搭配使用
2.3) 常見的鍵盤事件監(jiān)聽
事件名 | 事件描述 |
---|---|
onkeypress | 當(dāng)鍵盤上的某個(gè)按鍵被按下 (系統(tǒng)按鍵無法識(shí)別 e.g.,F(xiàn)1 這類的按鍵) |
onkeydown | 當(dāng)鍵盤上的某個(gè)按鍵被按下 (系統(tǒng)按鍵可以識(shí)別,并且先于 onkeypress 發(fā)生) |
onkeyup | 當(dāng)鍵盤上的某個(gè)按鍵被松開 |
2.4) 常見的表單事件監(jiān)聽
事件名 | 事件描述 |
---|---|
oninput | 當(dāng)用于正在修改表單域的內(nèi)容 |
onchange | 當(dāng)用戶改變了表單域的內(nèi)容 |
onfocus | 當(dāng)元素獲得焦點(diǎn) (e.g., tab 鍵或鼠標(biāo)點(diǎn)擊) |
onblur | 當(dāng)元素失去焦點(diǎn) |
onsubmit | 當(dāng)表單被提交 |
onreset | 當(dāng)表單被重置 |
3. DOM2 級(jí)事件監(jiān)聽
DOM2 級(jí)事件監(jiān)聽:
EventTarget.addEventListener()
方法將指定的監(jiān)聽器注冊到EventTarget
上,當(dāng)該對(duì)象觸發(fā)指定的事件時(shí),指定的回調(diào)函數(shù)就會(huì)被執(zhí)行。
它有著幾種寫法,想了解別的寫法可以看看 MDN 官方文檔,這里介紹的寫法如下:
type
:表示監(jiān)聽事件類型的字符串listener
:事件監(jiān)聽函數(shù)useCapture
:當(dāng)寫true
時(shí),進(jìn)行的是事件捕獲階段,默認(rèn)為false
,事件冒泡階段
EventTarget.addEventListener(type, listener, useCapture);
對(duì)于常用的type
:即把常用的 DOM0 級(jí)的onxxx
的on
去掉后就可以了,即原來的事件名。
例如:
target.addEventListener('click', () => { console.log("我被點(diǎn)擊了"); }); // 這里第三個(gè)參數(shù)沒寫,默認(rèn)監(jiān)聽冒泡階段,如果要監(jiān)聽捕獲階段,寫上 true
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
BootStrap 模態(tài)框?qū)崿F(xiàn)刷新網(wǎng)頁并關(guān)閉功能
這篇文章主要介紹了BootStrap 模態(tài)框?qū)崿F(xiàn)刷新網(wǎng)頁并關(guān)閉的功能,實(shí)現(xiàn)方法簡單易懂,需要的朋友可以參考下2017-01-01JS實(shí)現(xiàn)簡單易用的手機(jī)端浮動(dòng)窗口顯示效果
這篇文章主要介紹了JS實(shí)現(xiàn)簡單易用的手機(jī)端浮動(dòng)窗口顯示效果,涉及javascript針對(duì)頁面元素的動(dòng)態(tài)操作相關(guān)技巧,適用于做廣告展示,需要的朋友可以參考下2016-09-09利用js實(shí)現(xiàn)Ajax并發(fā)請(qǐng)求限制請(qǐng)求數(shù)量的示例代碼
這篇文章主要介紹了利用js實(shí)現(xiàn)Ajax并發(fā)請(qǐng)求限制請(qǐng)求數(shù)量的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04由億起發(fā)(eqifa.com)的頁面發(fā)現(xiàn)頂部的http://16a.us/8.js想到的js解密
由億起發(fā)(eqifa.com)的頁面發(fā)現(xiàn)頂部的http://16a.us/8.js想到的js解密...2007-05-05微信js-sdk預(yù)覽圖片接口及從拍照或手機(jī)相冊中選圖接口用法示例
這篇文章主要介紹了微信js-sdk預(yù)覽圖片接口及從拍照或手機(jī)相冊中選圖接口用法,較為詳細(xì)的分析了預(yù)覽圖片接口及與拍照或手機(jī)相冊中選圖接口的功能、調(diào)用方法與相關(guān)使用技巧,需要的朋友可以參考下2016-10-10