瀏覽器事件機制

一、概述

瀏覽器事件流存在三個階段:捕獲階段、目標階段、冒泡階段,捕獲和冒泡是事件傳播的兩種截然相反的方式。

二、什么是捕獲和冒泡

見以下例子:

<div class="parent">
    <div class="child"></div>
  </div>

此結(jié)構(gòu)中,點擊子元素:
??捕獲機制中,事件從document一直向點擊的元素傳播,直到被點擊元素。
??冒泡機制中,事件從被點擊元素逐層向其父元素傳播,直到根節(jié)點。
?簡單的說,捕獲機制由外向內(nèi)傳播,冒泡機制由內(nèi)向外傳播。

三、事件綁定

?傳統(tǒng)綁定方法:onclick,使用的是冒泡機制,并且一個事件只能綁定一個函數(shù)(如需執(zhí)行多個函數(shù),可在外層函數(shù)內(nèi)定義多個函數(shù))
?非IE中用addEventListener(eventName,callback,isCapturing)綁定事件,IE8以下不支持此方法,最后的isCapturing參數(shù)true表示采用捕獲機制,false表示采用冒泡機制,不寫第三個參數(shù)默認為false,即默認采用冒泡機制,可以為一個事件綁定多個響應函數(shù)。
?由于IE8以下不支持addEventListener,事件綁定采用IE自有的attachEvent(eventName,callback),可以看到此函數(shù)無第三參數(shù),無法指定事件處理機制,默認使用捕獲機制處理。值得注意的是,自IE11起已不支持此方法,應當使用W3C標準規(guī)定的addEventListener方法。

1.基礎回顧-瀏覽器事件機制
2.JavaScript 詳說事件機制之冒泡、捕獲、傳播、委托
3.javascript事件機制詳解

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 瀏覽器事件機制(即冒泡和捕獲,也稱為事件流) 基礎知識 操作系統(tǒng)最先知道用戶點擊了鼠標,瀏覽器次之 child 被...
    馬建陽閱讀 518評論 0 1
  • 以下文章為轉(zhuǎn)載,對理解JavaScript中的事件處理機制很有幫助,淺顯易懂,特分享于此。 什么是事件? 事件(E...
    jxyjxy閱讀 3,173評論 1 10
  • 1. 事件冒泡與事件捕獲 事件冒泡和事件捕獲分別由微軟和網(wǎng)景公司提出,這兩個概念都是為了解決頁面中事件流(事件發(fā)生...
    cbw100閱讀 2,812評論 0 8
  • 1.何謂事件 用戶和網(wǎng)頁交互時的行為,動作,稱之為事件; 2.監(jiān)視事件 現(xiàn)實生活中,為了監(jiān)視車輛是否違章,通過在紅...
    草鞋弟閱讀 739評論 0 0
  • 我的合伙人自己有個專為開票的戶頭,前幾天稅務局打電話讓她申報,她懶得要命,每次都是讓我?guī)退_票報稅驗舊換票什么的。...
    赤腳哥閱讀 173評論 0 0

友情鏈接更多精彩內(nèi)容