JavaScript事件詳細(xì)講解
事件的概念
事件:指的是文檔或者瀏覽器窗口中發(fā)生的一些特定交互瞬間。我們可以通過偵聽器(或者處理程序)來預(yù)定事件,以便事件發(fā)生的時(shí)候執(zhí)行相應(yīng)的代碼。
一、事件流
1.事件流:描述的是在頁面中接受事件的順序
2.事件冒泡:由最具體的元素接收,然后逐級向上傳播至最不具體的元素的節(jié)點(diǎn)(文檔)
3.事件捕獲:最不具體的節(jié)點(diǎn)先接收事件,而最具體的節(jié)點(diǎn)應(yīng)該最后接收事件
二、事件處理
1.HTML事件處理:直接添加到HTML結(jié)構(gòu)中
2.DOM0級事件處理:把一個(gè)函數(shù)賦值給一個(gè)事件處理程序?qū)傩?/p>
3.DOM2級事件處理:
addEventListener("事件名","事件處理函數(shù)",布爾值)
true:事件捕獲
false:事件冒泡
removeEventListener();
4.IE事件處理程序
attachEvent
detachEvent
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div id="div"> <button id="btn1">按鈕</button> </div> <!--<script> function demo(){ alert("Hello HTML事件處理"); } </script>--> <!--<script> var btn1 = document.getElementById("btn1"); btn1.onclick = function(){alert("Hello DOM0級事件處理程序")};//被覆蓋掉 btn1.onclick = function(){alert("Hello DOM0級事件處理程序2")}; btn1.onclick = function(){alert("Hello DOM0級事件處理程序3")}; </script>--> <!--<script> var btn1 = document.getElementById("btn1"); btn1.addEventListener("click",demo1); btn1.addEventListener("click",demo2); btn1.addEventListener("click",demo3); function demo1(){ alert("DOM2級事件處理程序1"); } function demo2(){ alert("DOM2級事件處理程序2"); } function demo3(){ alert("DOM2級事件處理程序3"); } btn1.removeEventListener("click",demo2) </script>--> <script> var btn1 = document.getElementById("btn1"); if(btn1.addEventListener){ btn1.addEventListener("click",demo); }else if(btn1.attachEvent){ btn1.attachEvent("onclick",demo) }else{ btn1.onclick = demo(); } function demo(){ alert("Hello"); } </script> </body> </html>
三、事件對象
1、事件對象:在觸發(fā)DOM事件的時(shí)候都會產(chǎn)生一個(gè)對象
2、事件對象event:
type:獲取事件類型
target:獲取事件目標(biāo)
stopPropagation():阻止事件冒泡
preventDefault():阻止事件默認(rèn)行為
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div id="div"> <button id="btn1">按鈕</button> <a id="aid">百度</a> </div> <script> document.getElementById("btn1").addEventListener("click",showType); document.getElementById("div").addEventListener("click",showDiv); document.getElementById("aid").addEventListener("click",showA); function showType(event){ // alert(event.type); alert(event.target); event.stopPropagation();//阻止事件冒泡 } function showDiv(){ alert("div") } function showA(event){ // event.stopPropagation(); // event.preventDefault(); } </script> </body> </html>
相關(guān)文章
JavaScript請求后臺數(shù)據(jù)的常用方法匯總
這篇文章主要介紹了JavaScript請求后臺數(shù)據(jù)的幾種常用方式,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06微信小程序?qū)崿F(xiàn)時(shí)間戳格式轉(zhuǎn)換
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)時(shí)間戳格式轉(zhuǎn)換,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-07-07BootStrap中的Fontawesome 圖標(biāo)
這篇文章主要介紹了BootStrap中Fontawesome 圖標(biāo)的相關(guān)知識,需要的朋友可以參考下2017-05-05JavaScript實(shí)現(xiàn)echarts水球圖百分比展示大屏可視化
這篇文章主要為大家介紹了JavaScript實(shí)現(xiàn)echarts水球圖百分比展示大屏可視化示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10JavaScript find()方法及返回?cái)?shù)據(jù)實(shí)例
這篇文章主要介紹了JavaScript中的find()方法和返回?cái)?shù)據(jù)的內(nèi)存指向,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04uni-app和原生小程序混合開發(fā)的具體實(shí)現(xiàn)過程
最近項(xiàng)目中遇到了一些功能需要與原生進(jìn)行混合開發(fā),所以下面這篇文章主要給大家介紹了關(guān)于uni-app和原生小程序混合開發(fā)的具體實(shí)現(xiàn)過程,需要的朋友可以參考下2022-07-07詳解Javascript百度地圖接口開發(fā)文檔中的類和方法
最近在工作中在用laravel框架仿寫?zhàn)I了么外賣商城,于是學(xué)習(xí)了一下有關(guān)地圖接口相關(guān)的知識,以下是百步地圖接口開發(fā)文檔的一些類和方法的使用,需要的朋友們可以參考借鑒,下面來一起看看吧。2017-02-02