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

js點擊事件的執(zhí)行過程實例分析【冒泡與捕獲】

 更新時間:2020年04月11日 13:34:28   作者:qdmoment  
這篇文章主要介紹了js點擊事件的執(zhí)行過程,結(jié)合實例形式分析了js事件機制中的冒泡與捕獲相關(guān)原理、操作技巧與注意事項,需要的朋友可以參考下

本文實例講述了js點擊事件的執(zhí)行過程。分享給大家供大家參考,具體如下:

js事件對象event包括很多事件類型,這里用onclick事件為例,探討一下在js事件捕獲機制和冒泡機制下的執(zhí)行過程,以及如何阻止事件的捕獲和冒泡。

首先看下當我們點擊一個元素后,瀏覽器的執(zhí)行過程。

1,當某個元素綁定的事件被觸發(fā)時,這時瀏覽器就會從頂級document元素發(fā)出一個事件流

2,這個事件流順著dom層級,一層一層向下找,直到遇到了觸發(fā)事件的目標元素,這個查找的過程是捕獲階段

  說明:捕獲階段,在查找每一層dom時,遇到相同的事件默認不執(zhí)行,元素的事件默認在冒泡階段執(zhí)行

3,到達目標元素后會觸發(fā)目標元素綁定的事件函數(shù),也就是目標元素事件函數(shù)處理階段

4,在處理過目標元素事件后,在順著dom層級一層一層向上查找,這時對應(yīng)dom上如果有相同的事件,默認會被觸發(fā),冒泡階段

實例:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  
 <div class="box" style="width:300px;height:300px;background:green;" οnclick="firstClick()">
  parent
  <div class="child" οnclick="secondClick()">child
    <div class="button" onclick = "thirdClick()">提交</div>
  </div>
</div>
<script>
  var divs=document.querySelectorAll("div");//獲取所有的divs
  function firstClick(){
    alert('firstClick')
  }
  function secondClick(){
    alert('secondClick')
  }
  function thirdClick(){
    alert('thirdClick')
  }
  function fn0(){
    alert("box");
  }
  function fn1(){
    alert("child");
  }
  function fn2(){
    alert("but");
  }
  divs[0].addEventListener("click",fn0,false);
  divs[1].addEventListener("click",fn1,false);
  divs[2].addEventListener("click",fn2,false);
</script>
</body>
</html>

說明:

addEventListener有三個參數(shù),最后一個參數(shù)是決定元素事件的觸發(fā)階段,默認是false,在冒泡階段執(zhí)行,設(shè)置為true,則在捕獲階段執(zhí)行。

在dom上直接綁定的事件會在addEventListenter監(jiān)聽的事件執(zhí)行之后執(zhí)行。

阻止冒泡:

onclick = function(e){
  e=e||window.event;
    if(e.stopPropagation){
    e.stopPropagation();//其它瀏覽器
  }else{
    e.cancelBubble=true;//IE瀏覽器
  }
}

阻止捕獲:判斷e.target

function fn0(e){
  if(e.target == divs[0]){
    alert("fn0");
  }
}
divs[0].addEventListener("click",fn0,true);

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行效果。

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript操作DOM技巧總結(jié)》、《JavaScript頁面元素操作技巧總結(jié)》、《JavaScript事件相關(guān)操作與技巧大全》、《JavaScript查找算法技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript錯誤與調(diào)試技巧總結(jié)

希望本文所述對大家JavaScript程序設(shè)計有所幫助。

相關(guān)文章

  • JS實現(xiàn)淡入淡出圖片效果的方法分析

    JS實現(xiàn)淡入淡出圖片效果的方法分析

    這篇文章主要介紹了JS實現(xiàn)淡入淡出圖片效果的方法,結(jié)合實例形式分析了js鼠標響應(yīng)實現(xiàn)圖片淡入淡出效果的原理與相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2016-12-12
  • JavaScript類型轉(zhuǎn)換方法及需要注意的問題小結(jié)(挺全面)

    JavaScript類型轉(zhuǎn)換方法及需要注意的問題小結(jié)(挺全面)

    JavaScript類型轉(zhuǎn)換方法及需要注意的問題,在js中經(jīng)常需要對數(shù)據(jù)類型的轉(zhuǎn)換操作,需要的朋友可以參考下。
    2010-11-11
  • 小程序自定義彈框效果

    小程序自定義彈框效果

    這篇文章主要為大家詳細介紹了小程序自定義彈框效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • js的新生代垃圾回收知識點總結(jié)

    js的新生代垃圾回收知識點總結(jié)

    在本篇文章里小編給大家整理的是關(guān)于js的新生代垃圾回收的相關(guān)知識點內(nèi)容,有需要的朋友們可以參考學(xué)習(xí)下。
    2019-08-08
  • 微信小程序獲取公眾號文章列表及顯示文章的示例代碼

    微信小程序獲取公眾號文章列表及顯示文章的示例代碼

    這篇文章主要介紹了微信小程序獲取公眾號文章列表及顯示文章的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • 跟我學(xué)習(xí)javascript的var預(yù)解析與函數(shù)聲明提升

    跟我學(xué)習(xí)javascript的var預(yù)解析與函數(shù)聲明提升

    跟我學(xué)習(xí)javascript的var預(yù)解析與函數(shù)聲明提升,小編對var預(yù)解析與函數(shù)聲明提升知識點也不甚了解,和大家一起學(xué)習(xí)本篇文章。
    2015-11-11
  • js實現(xiàn)炫酷光感效果

    js實現(xiàn)炫酷光感效果

    這篇文章主要為大家詳細介紹了js實現(xiàn)炫酷光感效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • js控制href內(nèi)容的連接內(nèi)容的變化示例

    js控制href內(nèi)容的連接內(nèi)容的變化示例

    這篇文章主要介紹了使用js控制href內(nèi)容的連接內(nèi)容的變化,需要的朋友可以參考下
    2014-04-04
  • 原生JavaScript實現(xiàn)Ajax異步請求

    原生JavaScript實現(xiàn)Ajax異步請求

    ajax現(xiàn)在是一種非常流行的技術(shù),現(xiàn)在雖然可以利用JQuery或者一些第三方插件甚至微軟提供的一些控件可以方面的實現(xiàn)ajax功能,但是明白其原理也是非常重要的,下面是來使用純javascript實現(xiàn)獲取服務(wù)器端的功能來展示如何使用純javascript實現(xiàn)ajax功能,以弄清其原理.
    2017-11-11
  • 解決idea開發(fā)遇到j(luò)avascript動態(tài)添加html元素時中文亂碼的問題

    解決idea開發(fā)遇到j(luò)avascript動態(tài)添加html元素時中文亂碼的問題

    這篇文章主要介紹了解決idea開發(fā)遇到j(luò)avascript動態(tài)添加html元素時中文亂碼的問題,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09

最新評論

乐东| 龙南县| 潼南县| 衡东县| 措美县| 南阳市| 绥芬河市| 磐安县| 尖扎县| 巨野县| 商洛市| 南乐县| 洛川县| 将乐县| 丰顺县| 绿春县| 西安市| 延安市| 广安市| 金阳县| 城固县| 北碚区| 宽甸| 章丘市| 黄梅县| 台州市| 西盟| 梁山县| 阿拉善左旗| 内江市| 突泉县| 广州市| 昂仁县| 奉化市| 湖北省| 宣城市| 雅安市| 山西省| 平邑县| 武功县| 班玛县|