JavaScript中添加監(jiān)聽句柄的方式
前言:
監(jiān)聽就是觸發(fā)某事件之后做出的響應(yīng),監(jiān)聽句柄是觸發(fā)某相應(yīng)的條件
一、效果展示
鼠標(biāo)聚焦、鼠標(biāo)移開、鼠標(biāo)點(diǎn)擊等等都可以作為監(jiān)聽句柄
二、句柄合集
- onchange HTML 元素改變
- onclick 用戶點(diǎn)擊 HTML 元素
- onmouseover 用戶在一個(gè)HTML元素上移動鼠標(biāo)
- onmouseout 用戶從一個(gè)HTML元素上移開鼠標(biāo)
- onkeydown 用戶按下鍵盤按鍵
- onload 瀏覽器已完成頁面的加載
- onclick 失去焦點(diǎn)
- onfocuse 獲取焦點(diǎn)
三、添加監(jiān)聽的方式
添加監(jiān)聽的方式有兩種:
1.將事件與函數(shù)綁定在一起
- 例如將點(diǎn)擊監(jiān)聽句柄與f1函數(shù)綁定起來
<!DOCTYPE html> <html lang="en"> <head> ? ? <meta charset="UTF-8"> ? ? <meta http-equiv="X-UA-Compatible" content="IE=edge"> ? ? <meta name="viewport" content="width=device-width, initial-scale=1.0"> ? ? <title>Document</title> </head> <body> ? ? <script> ? ? ? ? function f1() ? ? ? ? { ? ? ? ? ? ? element=document.getElementById("myimage") ? ? ? ? ? ? if(element.src.match("bulbon")) ? ? ? ? ? ? { ? ? ? ? ? ? ? ? element.src="../pic_bulboff.gif" ? ? ? ? ? ? } ? ? ? ? ? ? else{ ? ? ? ? ? ? ? ? element.src="../pic_bulbon.gif" ? ? ? ? ? ? } ? ? ? ? } ? ? </script> ? ? <img id="myimage" src="../pic_bulboff.gif" onclick="f1()" alt="" width="100" height="150"> ? ? <p>點(diǎn)擊燈泡開關(guān)燈</p> </body> </html>
2.先獲取元素再添加事件
例如:
? ? ? ??? ?var x = document.getElementById("myBtn"); ? ? ? ? x.addEventListener("mouseover", myFunction);
將鼠標(biāo)覆蓋句柄與函數(shù)myFunction綁定在一起
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>菜鳥教程(runoob.com)</title> </head> ? ? <body> ? ? ? ? ? ? <p>實(shí)例使用 addEventListener() 方法在同一個(gè)按鈕中添加多個(gè)事件。</p> ? ? ? ? ? ? <button id="myBtn">點(diǎn)我</button> ? ? ? ? ? ? <p id="demo"></p> ? ? <script> ? ? ? ? ? ? var x = document.getElementById("myBtn"); ? ? ? ? ? ? x.addEventListener("mouseover", myFunction); ? ? ? ? ? ? x.addEventListener("click", mySecondFunction); ? ? ? ? ? ? x.addEventListener("mouseout", myThirdFunction); ? ? ? ? ? ? function myFunction() { ? ? ? ? ? ? ? ? document.getElementById("demo").innerHTML += "Moused over!<br>" ? ? ? ? ? ? } ? ? ? ? ? ? function mySecondFunction() { ? ? ? ? ? ? ? ? document.getElementById("demo").innerHTML += "Clicked!<br>" ? ? ? ? ? ? } ? ? ? ? ? ? function myThirdFunction() { ? ? ? ? ? ? ? ? document.getElementById("demo").innerHTML += "Moused out!<br>" ? ? ? ? ? ? } ? ? ? ? ? ? // 監(jiān)聽函數(shù)如何傳遞參數(shù) ? ? ? ? ? ? document.getElementById("myBtn").addEventListener("click", function() { ? ? ? ? ? ? ? ? myFunction(p1, p2); ? ? ? ? ? ? }); ? ? ? ? ? ? function myFunction(a, b) { ? ? ? ? ? ? ? ? ?var result = a * b; ? ? ? ? ? ? ? ? ?document.getElementById("demo").innerHTML = result; ? ? ? ? ? ? } ? ? </script> ? ? </body> </html>
總結(jié):
兩種監(jiān)聽方式均可以達(dá)到效果,個(gè)人認(rèn)為先獲取后添加的句柄監(jiān)聽使用更為方便。
到此這篇關(guān)于JavaScript中添加監(jiān)聽句柄的方式的文章就介紹到這了,更多相關(guān)JavaScript監(jiān)聽句柄內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
微信小程序?qū)W習(xí)筆記之文件上傳、下載操作圖文詳解
這篇文章主要介紹了微信小程序?qū)W習(xí)筆記之文件上傳、下載操作,結(jié)合實(shí)例形式分析了微信小程序圖片文件傳輸?shù)脑怼⒉襟E及后臺php操作相關(guān)實(shí)現(xiàn)技巧,并結(jié)合圖文形式予以詳細(xì)說明,需要的朋友可以參考下2019-03-03CascadeView級聯(lián)組件實(shí)現(xiàn)思路詳解(分離思想和單鏈表)
本文介紹自己最近做省市級聯(lián)的類似的級聯(lián)功能的實(shí)現(xiàn)思路,為了盡可能地做到職責(zé)分離跟表現(xiàn)與行為分離,這個(gè)功能拆分成了2個(gè)組件并用到了單鏈表來實(shí)現(xiàn)關(guān)鍵的級聯(lián)邏輯,下一段有演示效果的gif圖2016-04-04封裝的dialog插件 基于bootstrap模態(tài)對話框的簡單擴(kuò)展
這篇文章主要介紹了基于bootstrap模態(tài)對話框的簡單擴(kuò)展,bootstrap-mzDialog插件的封裝,感興趣的小伙伴們可以參考一下2016-08-08微信小程序開發(fā)之?dāng)?shù)據(jù)存儲 參數(shù)傳遞 數(shù)據(jù)緩存
本文主要介紹了微信小程序開發(fā)之?dāng)?shù)據(jù)存儲、參數(shù)傳遞、數(shù)據(jù)緩存的相關(guān)知識。具有很好的參考價(jià)值。下面跟著小編一起來看下吧2017-04-04在Js頁面通過POST傳遞參數(shù)跳轉(zhuǎn)到新頁面詳解
這篇文章主要給大家介紹了關(guān)于在Js頁面通過POST傳遞參數(shù)跳轉(zhuǎn)到新頁面的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-08-08