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

addEventListener()第三個參數(shù)useCapture (Boolean)詳細(xì)解析

 更新時間:2013年11月07日 08:55:55   作者:  
true的觸發(fā)順序總是在false之前;如果多個均為true,則外層的觸發(fā)先于內(nèi)層;如果多個均為false,則內(nèi)層的觸發(fā)先于外層

舉例

<div id="div1">
  <div id="div2">
    <div id="div3">
      <div id="div4">
      </div>
    </div>
  </div>
</div>

如果在 d3 上點擊鼠標(biāo),事件流是這樣的:

捕獲階段 在 div1 處檢測是否有 useCapture 為 true 的事件處理程序,若有,則執(zhí)行該程序,然后再同樣地處理 div2。

目標(biāo)階段 在 div3 處,發(fā)現(xiàn) div3 就是鼠標(biāo)點擊的節(jié)點,所以這里為目標(biāo)階段,若有事件處理程序,則執(zhí)行該程序,這里不論 useCapture 為 true 還是 false。

冒泡階段 在 div2 處檢測是否有 useCapture 為 false 的事件處理程序,若有,則執(zhí)行該程序,然后再同樣地處理 div1。

addEventListener 有三個參數(shù):第一個參數(shù)表示事件名稱(不含 on,如 "click");第二個參數(shù)表示要接收事件處理的函數(shù);第三個參數(shù)為 useCapture,本文就講解它。

<div id="outDiv">
<div id="middleDiv">
    <div id="inDiv">請在此點擊鼠標(biāo)。</div>
</div>
</div>

<div id="info"></div>

var outDiv = document.getElementById("outDiv");
var middleDiv = document.getElementById("middleDiv");
var inDiv = document.getElementById("inDiv");
var info = document.getElementById("info");

outDiv.addEventListener("click", function () { info.innerHTML += "outDiv" + "<br>"; }, false);
middleDiv.addEventListener("click", function () { info.innerHTML += "middleDiv" + "<br>"; }, false);
inDiv.addEventListener("click", function () { info.innerHTML += "inDiv" + "<br>"; }, false);

上述是我們測試的代碼,根據(jù) info 的顯示來確定觸發(fā)的順序,有三個 addEventListener,而 useCapture 可選值為 true 和 false,所以 2*2*2,可以得出 8 段不同的程序。

•全為 false 時,觸發(fā)順序為:inDiv、middleDiv、outDiv;

•全為 true 時,觸發(fā)順序為:outDiv、middleDiv、inDiv;

•outDiv 為 true,其他為 false 時,觸發(fā)順序為:outDiv、inDiv、middleDiv;

•middleDiv 為 true,其他為 false 時,觸發(fā)順序為:middleDiv、inDiv、outDiv;

•……

最終得出如下結(jié)論:

•true 的觸發(fā)順序總是在 false 之前;

•如果多個均為 true,則外層的觸發(fā)先于內(nèi)層;

•如果多個均為 false,則內(nèi)層的觸發(fā)先于外層。

相關(guān)文章

  • onkeyup,onkeydown和onkeypress的區(qū)別介紹

    onkeyup,onkeydown和onkeypress的區(qū)別介紹

    三者在事件的響應(yīng)上還有一點不同,就是onkeydown 、onkeypress事件響應(yīng)的時候輸入的字符并沒有被系統(tǒng)接受,而響應(yīng)onkeyup的時候,輸入流已經(jīng)被系統(tǒng)接受
    2013-10-10
  • JS數(shù)組(Array)處理函數(shù)整理

    JS數(shù)組(Array)處理函數(shù)整理

    這篇文章主要整理了一下JS數(shù)組(Array)處理函數(shù),常用的都匯總了一下,推薦給大家。
    2014-12-12
  • 淺談javascript中new操作符的原理

    淺談javascript中new操作符的原理

    下面小編就為大家?guī)硪黄獪\談javascript中new操作符的原理。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • js Date概念詳細(xì)介紹

    js Date概念詳細(xì)介紹

    Date 對象用于處理日期和時間,Date對象會自動把當(dāng)前日期和時間保存為其初始值,本文整理了一些,喜歡的朋友可以收藏下
    2013-11-11
  • Javascript模塊化編程(一)模塊的寫法最佳實踐

    Javascript模塊化編程(一)模塊的寫法最佳實踐

    Javascript模塊化編程,已經(jīng)成為一個迫切的需求。理想情況下,開發(fā)者只需要實現(xiàn)核心的業(yè)務(wù)邏輯,其他都可以加載別人已經(jīng)寫好的模塊但是,Javascript不是一種模塊化編程語言,它不支持類class,更遑論模塊module了
    2013-01-01
  • 從數(shù)據(jù)結(jié)構(gòu)分析看:用for each...in 比 for...in 要快些

    從數(shù)據(jù)結(jié)構(gòu)分析看:用for each...in 比 for...in 要快些

    本篇文章小編將為大家介紹,從數(shù)據(jù)結(jié)構(gòu)分析看:用for each...in 比 for...in 要快些。需要的朋友可以參考一下
    2013-04-04
  • js中Object.create實例用法詳解

    js中Object.create實例用法詳解

    在本篇文章里小編給大家整理的是一篇關(guān)于js中Object.create實例用法及相關(guān)基礎(chǔ)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-10-10
  • javascript操作css屬性

    javascript操作css屬性

    今天因需要用到j(luò)s獲取css屬性,網(wǎng)上搜了半天都不合適的。有一下幾種方法
    2013-12-12
  • 深入探討JavaScript String對象

    深入探討JavaScript String對象

    本文向大家詳細(xì)的介紹了javascript中的String對象的簡介、定義方式、實例屬性和實例方法,非常的細(xì)致全面,這里推薦給大家,希望對大家能夠有所幫助。
    2015-03-03

最新評論