国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

理解DOM事件流的三個階段

xiangzhihong / 527人閱讀

摘要:本文主要解決兩個問題什么是事件流事件流的三個階段起因在學習前端的大半年來,對事件了解甚少。事件流所描述的就是從頁面中接受事件的順序。事件流事件流包括三個階段。防止事件冒泡而帶來不必要的錯誤和困擾。分有事件冒泡與事件捕獲兩種。

本文主要解決兩個問題:

什么是事件流

DOM事件流的三個階段

起因

在學習前端的大半年來,對DOM事件了解甚少。一般也只是用用onclick來綁定個點擊事件。在寒假深入學習JavaScript時,愈發覺得自己對DOM事件了解不夠,遂打開我的《JavaScript高級程序設計》,翻到DOM事件那一章,開始第二次學習之旅。
當然,DOM事件所囊括的知識較為龐雜,所以本文專注與自己學習時所碰到的難點,DOM事件流。

流的概念,在現今的JavaScript中隨處可見。比如說React中的單向數據流,Node中的流,又或是今天本文所講的DOM事件流。都是流的一種生動體現。
至于流的具體概念,我們采用下文的解釋:

用術語說流是對輸入輸出設備的抽象。以程序的角度說,流是具有方向的數據。
通通連起來——無處不在的流 淘寶FED--愈之

事件流之事件冒泡與事件捕獲

在瀏覽器發展的過程中,開發團隊遇到了一個問題。那就是頁面中的哪一部分擁有特定的事件?
可以想象畫在一張紙上的一組同心圓,如果你把手指放在圓心上,那么你的手指指向的其實不是一個圓,而是紙上所有的圓。放到實際頁面中就是,你點擊一個按鈕,事實上你還同時點擊了按鈕所有的父元素。
開發團隊的問題就在于,當點擊按鈕時,是按鈕最外層的父元素先收到事件并執行,還是具體元素先收到事件并執行?所以這兒引入了事件流的概念。

事件流所描述的就是從頁面中接受事件的順序。

因為有兩種觀點,所以事件流也有兩種,分別是事件冒泡和事件捕獲。現行的主流是事件冒泡。

事件冒泡

事件冒泡即事件開始時,由最具體的元素接收(也就是事件發生所在的節點),然后逐級傳播到較為不具體的節點。
舉個栗子,就很容易明白了。




  
  Event Bubbling


  

然后,我們給button和它的父元素,加入點擊事件。

var button = document.getElementById("clickMe");

button.onclick = function() {
  console.log("1. You click Button");
};
document.body.onclick = function() {
  console.log("2. You click body");
};
document.onclick = function() {
  console.log("3. You click document");
};
window.onclick = function() {
  console.log("4. You click window");
};

效果如圖所示:

在代碼所示的頁面中,如果點擊了button,那么這個點擊事件會按如下的順序傳播(Chrome瀏覽器):

button

body

document

window

也就是說,click事件首先在

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/78714.html

相關文章

  • 理解DOM事件流的三個階段

    摘要:本文主要解決兩個問題什么是事件流事件流的三個階段起因在學習前端的大半年來,對事件了解甚少。事件流所描述的就是從頁面中接受事件的順序。事件流事件流包括三個階段。防止事件冒泡而帶來不必要的錯誤和困擾。分有事件冒泡與事件捕獲兩種。 本文主要解決兩個問題: 什么是事件流 DOM事件流的三個階段 起因 在學習前端的大半年來,對DOM事件了解甚少。一般也只是用用onclick來綁定個點擊事件。...

    afishhhhh 評論0 收藏0
  • 你真的理解事件冒泡和事件捕獲嗎?

    摘要:事件流是事件冒泡,而的事件流就是事件捕獲。所有現代瀏覽器都支持事件冒泡,并且會將事件一直冒泡到對象。事件捕獲的用以在于事件到達預定目標之前捕獲它。事件流級事件規定事件流包括三個階段,事件捕獲階段處于目標階段和事件冒泡階段。 最近在復習前端的基礎,看到事件這一節的時候,剛好發現了筆記中一道特別好玩并且十分有趣的代碼,根據這么一道題目,基本上能夠把事件冒泡和事件捕獲的盲區給掃空。本文就帶你...

    Cheriselalala 評論0 收藏0
  • 你真的理解事件冒泡和事件捕獲嗎?

    摘要:事件流是事件冒泡,而的事件流就是事件捕獲。所有現代瀏覽器都支持事件冒泡,并且會將事件一直冒泡到對象。事件捕獲的用以在于事件到達預定目標之前捕獲它。事件流級事件規定事件流包括三個階段,事件捕獲階段處于目標階段和事件冒泡階段。 最近在復習前端的基礎,看到事件這一節的時候,剛好發現了筆記中一道特別好玩并且十分有趣的代碼,根據這么一道題目,基本上能夠把事件冒泡和事件捕獲的盲區給掃空。本文就帶你...

    henry14 評論0 收藏0
  • 你真的理解事件冒泡和事件捕獲嗎?

    摘要:事件流是事件冒泡,而的事件流就是事件捕獲。所有現代瀏覽器都支持事件冒泡,并且會將事件一直冒泡到對象。事件捕獲的用以在于事件到達預定目標之前捕獲它。事件流級事件規定事件流包括三個階段,事件捕獲階段處于目標階段和事件冒泡階段。 最近在復習前端的基礎,看到事件這一節的時候,剛好發現了筆記中一道特別好玩并且十分有趣的代碼,根據這么一道題目,基本上能夠把事件冒泡和事件捕獲的盲區給掃空。本文就帶你...

    amuqiao 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<