欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

1、事件冒泡:在javascript事件傳播過程中,當(dāng)事件在一個(gè)元素上出發(fā)之后,事件會(huì)逐級(jí)傳播給先輩元素,直到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,控制臺(tái)依次輸出:box,middle,inner

阻止事件冒泡

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

一般,使用stopPropagation來阻止事件的冒泡,IE中使用cancleBuble=true,stopPropagation也是事件對象(Event)的一個(gè)方法,作用是阻止目標(biāo)元素的冒泡事件,但是會(huì)不阻止默認(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è)頁面的父級(jí)元素和很多子級(jí)元素都需要操作同一件事件的時(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獲取dom的高度和寬度(可見區(qū)域及部分等等)

    js獲取dom的高度和寬度(可見區(qū)域及部分等等)

    網(wǎng)頁可見區(qū)域?qū)捇蚋?、網(wǎng)頁正文全文寬或高以及網(wǎng)頁正文部分左或右,詳細(xì)請看下文,希望對大家有所幫助
    2013-06-06
  • 微信小程序?qū)崿F(xiàn)文章關(guān)注功能詳細(xì)流程

    微信小程序?qū)崿F(xiàn)文章關(guān)注功能詳細(xì)流程

    在社交小程序里有個(gè)常見的場景是關(guān)注功能,我們本篇以關(guān)注已經(jīng)發(fā)布的文章為例,講解一下關(guān)注功能如何實(shí)現(xiàn)
    2022-08-08
  • JS簡單實(shí)現(xiàn)表格排序功能示例

    JS簡單實(shí)現(xiàn)表格排序功能示例

    這篇文章主要介紹了JS簡單實(shí)現(xiàn)表格排序功能,涉及javascript針對頁面元素的遍歷、判斷與排序相關(guān)操作技巧,需要的朋友可以參考下
    2016-12-12
  • JavaScript驗(yàn)證API的使用

    JavaScript驗(yàn)證API的使用

    本文主要介紹了JavaScript驗(yàn)證API的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • 基于Next.js實(shí)現(xiàn)在線Excel的詳細(xì)代碼

    基于Next.js實(shí)現(xiàn)在線Excel的詳細(xì)代碼

    Next.js是一款React 開發(fā)框架,它可以幫助我們構(gòu)建 React 應(yīng)用程序。作為一個(gè)輕量級(jí)React服務(wù)端渲染應(yīng)用框架,這篇文章主要介紹了基于?Next.js實(shí)現(xiàn)在線Excel,需要的朋友可以參考下
    2022-08-08
  • JS實(shí)現(xiàn)的仿東京商城菜單、仿Win右鍵菜單及仿淘寶TAB特效合集

    JS實(shí)現(xiàn)的仿東京商城菜單、仿Win右鍵菜單及仿淘寶TAB特效合集

    這篇文章主要介紹了JS實(shí)現(xiàn)的仿東京商城菜單、仿Win右鍵菜單及仿淘寶TAB特效合集,以實(shí)例形式較為詳細(xì)的分析了JavaScript實(shí)現(xiàn)動(dòng)態(tài)添加下拉菜單及響應(yīng)鼠標(biāo)事件生成菜單等實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2015-09-09
  • 微信小程序日歷組件使用方法詳解

    微信小程序日歷組件使用方法詳解

    這篇文章主要為大家詳細(xì)介紹了微信小程序日歷組件的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • 微信小程序?qū)崿F(xiàn)輪播圖指示器

    微信小程序?qū)崿F(xiàn)輪播圖指示器

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)輪播圖指示器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • JavaScript控制Session操作方法

    JavaScript控制Session操作方法

    JavaScript代表客戶端,而Session代表的是服務(wù)器(不知道這樣說大家是否能夠理解)接下來介紹JavaScript如何控制Session,感興趣的朋友可以了解下啊
    2013-01-01
  • JavaScript進(jìn)階(一)變量聲明提升實(shí)例分析

    JavaScript進(jìn)階(一)變量聲明提升實(shí)例分析

    這篇文章主要介紹了JavaScript變量聲明提升,結(jié)合實(shí)例形式分析了JavaScript變量聲明提升相關(guān)原理、用法與操作注意事項(xiàng),需要的朋友可以參考下
    2020-05-05

最新評(píng)論