最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript事件冒泡,事件捕獲和事件委托詳解

 更新時(shí)間:2021年11月10日 08:40:04   作者:Patty_2000  
這篇文章主要介紹了javaScript 事件冒泡,事件捕獲和事件委托的相關(guān)資料,需要的朋友可以參考下,希望能夠給你帶來幫助

1、事件冒泡:在javascript事件傳播過程中,當(dāng)事件在一個(gè)元素上出發(fā)之后,事件會逐級傳播給先輩元素,直到document為止,有的瀏覽器可能到window為止。并不是所有的事件都有冒泡現(xiàn)象,比如如下幾個(gè):blur事件 ,focus事件, load事件

2、事件委托:事件捕獲恰好與事件冒泡相反,它從頂層祖先元素開始,直到事件觸發(fā)元素。

js事件捕獲一般通過DOM2事件模型addEventListener來實(shí)現(xiàn)的:

target.addEventListener(type, listener, useCapture)

第三個(gè)參數(shù)默認(rèn)設(shè)置為false,表示在冒泡階段出發(fā)事件,設(shè)置為true時(shí)表示在捕獲階段觸發(fā),一般我們工作中似乎很少使用事件捕獲。但還是要理解一下

<div id="box">
    <div id="middle">
        <div id="inner"></div>
    </div>
</div>
<script>
//事件捕獲
window.onload=function(){
    let box=document.getElementById("box");
    let middle=document.getElementById("middle");
    let inner=document.getElementById("inner");
    box.addEventListener("click",function(){console.log("box")},true);
    middle.addEventListener("click",function(){console.log("middle")},true);
    inner.addEventListener("click",function(){console.log("inner")},true);
}
</script>
點(diǎn)擊inner,控制臺依次輸出:box,middle,inner

阻止事件冒泡

平時(shí)會用到大量的事件冒泡事件,但是可能我們在某個(gè)子級標(biāo)簽不需要傳遞事件給父級,這時(shí)候就需要阻止它事件的冒泡。

一般,使用stopPropagation來阻止事件的冒泡,IE中使用cancleBuble=true,stopPropagation也是事件對象(Event)的一個(gè)方法,作用是阻止目標(biāo)元素的冒泡事件,但是會不阻止默認(rèn)行為。

//阻止事件冒泡
let btna = document.getElementById('btn');
btna.onclick=function(e){
    window.event? window.event.cancelBubble = true : e.stopPropagation();
 };

3、事件委托:事件委托又可以叫事件代理,事件委托就是利用事件冒泡,只指定一個(gè)事件處理程序,就可以管理某一類型的所有事件。

益處:減少dom操作可以提高網(wǎng)頁性能,當(dāng)一個(gè)頁面的父級元素和很多子級元素都需要操作同一件事件的時(shí)候,我們不可能每個(gè)元素都去給它綁定一個(gè)事件

<ul id="getNum">
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
</ul>
<script>
let ptclick = document.getElementById('getNum');
let lilist = ptclick.querySelectorAll('li');
for(let i=0;i<lilist.length;i++){
    lilist[i].index = i;
};
ptclick.onclick = function(e){
    var e = e || window.event;
    var target = e.target || e.srcElement;
    console.log(e.target.index);
};
</script>

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • JS實(shí)現(xiàn)4位隨機(jī)驗(yàn)證碼

    JS實(shí)現(xiàn)4位隨機(jī)驗(yàn)證碼

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)4位隨機(jī)驗(yàn)證碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • JavaScript運(yùn)動原理基礎(chǔ)知識詳解

    JavaScript運(yùn)動原理基礎(chǔ)知識詳解

    這篇文章主要介紹了JavaScript運(yùn)動原理基礎(chǔ)知識詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • 教你修改element-ui源碼給el-dialog添加全屏功能

    教你修改element-ui源碼給el-dialog添加全屏功能

    el-dialog組件提供了fullscreen功能,但是無法滿足業(yè)務(wù)需求。系統(tǒng)使用了許多dialog,不方便重新封裝dialog組件,故直接對源碼進(jìn)行修改,這篇文章主要介紹了修改element-ui源碼給el-dialog添加全屏功能,需要的朋友可以參考下
    2022-11-11
  • JS獲取地址欄參數(shù)的幾種方法小結(jié)

    JS獲取地址欄參數(shù)的幾種方法小結(jié)

    本篇文章主要是對JS獲取地址欄參數(shù)的幾種方法進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-02-02
  • 前端使用crypto.js進(jìn)行加密的函數(shù)代碼

    前端使用crypto.js進(jìn)行加密的函數(shù)代碼

    最近在使用Cookies加密保存數(shù)據(jù)的時(shí)候,接觸到crypto,使用還算簡單,在這里記錄一下
    2020-08-08
  • JavaScript如何刪除字符串中子字符串

    JavaScript如何刪除字符串中子字符串

    本文介紹了如何從?JavaScript?中的字符串中刪除子字符串,并提供了兩種常用的方法:replace()?方法和?split()?方法,結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2023-05-05
  • js組件SlotMachine實(shí)現(xiàn)圖片切換效果制作抽獎系統(tǒng)

    js組件SlotMachine實(shí)現(xiàn)圖片切換效果制作抽獎系統(tǒng)

    這篇文章主要介紹了js組件SlotMachine實(shí)現(xiàn)圖片切換效果制作抽獎系統(tǒng)的相關(guān)資料,需要的朋友可以參考下
    2016-04-04
  • 通過javascript實(shí)現(xiàn)掃雷游戲代碼實(shí)例

    通過javascript實(shí)現(xiàn)掃雷游戲代碼實(shí)例

    這篇文章主要介紹了通過javascript實(shí)現(xiàn)掃雷游戲代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • javascript常用方法總結(jié)

    javascript常用方法總結(jié)

    經(jīng)常使用的一些javascript方法,今天總結(jié)了一下,以便以后查詢,有需要的小伙伴可以參考下。
    2015-05-05
  • 前端如何用canvas做電影院選票功能詳解

    前端如何用canvas做電影院選票功能詳解

    這篇文章主要介紹了如何使用HTML、CSS和JavaScript創(chuàng)建一個(gè)簡單的電影院座位圖,并實(shí)現(xiàn)選票功能,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-02-02

最新評論

中超| 腾冲县| 安宁市| 称多县| 葵青区| 孝感市| 大城县| 平塘县| 酉阳| 高尔夫| 都昌县| 连云港市| 盐亭县| 南充市| 中山市| 柳江县| 开原市| 买车| 丹江口市| 青州市| 许昌县| 丰县| 互助| 江安县| 永定县| 徐州市| 营山县| 淳安县| 石屏县| 桂平市| 务川| 荣成市| 集贤县| 福泉市| 宁波市| 平远县| 开化县| 清新县| 边坝县| 科尔| 大兴区|