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

深入理解事件冒泡(Bubble)和事件捕捉(capture)

 更新時間:2016年05月28日 11:28:21   投稿:jingxian  
下面小編就為大家?guī)硪黄钊肜斫馐录芭?Bubble)和事件捕捉(capture)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

事件的發(fā)生順序

假設(shè)在一個元素中又嵌套了另一個元素并且兩者都有一個onClick事件處理函數(shù)(event handler)。如果用戶單擊元素2,則元素1和元素2的單擊事件都會被觸發(fā)。但是哪一個事件先被觸發(fā)?哪一個事件處理函數(shù)會被首先執(zhí)行?換句話說,事件的發(fā)生順序到底如何?如下圖是當點擊span元素區(qū)域是,三個點擊事件都會被觸發(fā),但是先后順序是怎樣的呢?

<div onclick="func1">
   <p onclick="func2">
     <span onclick=""func3>
     </span>
   </p>
 </div>

兩種模型

對于這個事件的處理順序上,Netscape和微軟有兩種截然不同的處理方法:

•Netscape主張事件會從最外層開始發(fā)生,直到最具體的元素,這種事件發(fā)生順序被稱為捕獲型

•微軟則保持事件從最內(nèi)部元素開始發(fā)生,然后一直向上傳播,這種事件順序被稱為冒泡型

這兩種事件順序是截然相反的。Explorer瀏覽器只支持冒泡事件,Mozilla,Opera7和Konqueror兩者都支持。而更古老的opera和iCab兩者都不支持

w3c

任何發(fā)生在w3c事件模型中的事件,首是進入捕獲階段,直到達到目標元素,再進入冒泡階段。

對于正常的web開發(fā),可以選擇是在捕獲階段還是冒泡階段綁定事件處理函數(shù),這是通過addEventListener()方法實現(xiàn)的,如果這個函數(shù)的useCapture參數(shù)是true,則在捕獲階段綁定函數(shù),反之false,在冒泡階段綁定函數(shù)。

element.addEventListener(event, function, useCapture)

阻止冒泡

在正常的開發(fā)過程中,如果想要阻止事件的傳播,通過一個方法實現(xiàn)。

在微軟的模型中,你必須設(shè)置事件的cancelBubble的屬性為true

window.event.cancelBubble = true

在w3c模型中你必須調(diào)用事件的stopPropagation()方法

e.stopPropagation()

通過調(diào)用這些方法會阻止所有冒泡向外傳播。跨瀏覽器解決方案:

function doSomething(e) {
  if (!e) {
    var e = window.event;
    e.cancelBubble = true;
  }
  if (e.stopPropagation) {
    e.stopPropagation();
  }
}

以上這篇深入理解事件冒泡(Bubble)和事件捕捉(capture)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • JS模擬自動點擊的簡單實例

    JS模擬自動點擊的簡單實例

    這篇文章介紹了JS模擬自動點擊的簡單實例,有需要的朋友可以參考一下
    2013-08-08
  • H5用戶注冊表單頁 注冊模態(tài)框!

    H5用戶注冊表單頁 注冊模態(tài)框!

    這篇文章主要為大家詳細介紹了H5用戶注冊表單頁的相關(guān)代碼,注冊模態(tài)框,如何設(shè)計用戶注冊表單頁,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • 一文詳解JavaScript數(shù)組對象和字符串對象

    一文詳解JavaScript數(shù)組對象和字符串對象

    這篇文章主要介紹了JavaScript數(shù)組對象和字符串對象,文章中有詳細的代碼示例,對學習或工作有一定的幫助,需要的小伙伴可以參考一下
    2023-04-04
  • JS設(shè)置緩存和緩存過期時間的操作方法

    JS設(shè)置緩存和緩存過期時間的操作方法

    js-cookie是一個用于處理瀏覽器Cookie的JavaScript庫,本文通過實例代碼講解JS設(shè)置緩存和緩存過期時間的操作方法,感興趣的朋友跟隨小編一起看看吧
    2025-01-01
  • JavaScript實現(xiàn)點擊文字切換登錄窗口的方法

    JavaScript實現(xiàn)點擊文字切換登錄窗口的方法

    這篇文章主要介紹了JavaScript實現(xiàn)點擊文字切換登錄窗口的方法,涉及javascript操作div層及相關(guān)樣式的技巧,需要的朋友可以參考下
    2015-05-05
  • JS獲取多維數(shù)組中相同鍵的值實現(xiàn)方法示例

    JS獲取多維數(shù)組中相同鍵的值實現(xiàn)方法示例

    這篇文章主要介紹了JS獲取多維數(shù)組中相同鍵的值實現(xiàn)方法,結(jié)合實例形式分析了JS數(shù)組遍歷、判斷、鍵值獲取等操作技巧,需要的朋友可以參考下
    2017-01-01
  • 重置Redux的狀態(tài)數(shù)據(jù)的方法實現(xiàn)

    重置Redux的狀態(tài)數(shù)據(jù)的方法實現(xiàn)

    這篇文章主要介紹了重置Redux的狀態(tài)數(shù)據(jù)的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • js實現(xiàn)的二級橫向菜單條實例

    js實現(xiàn)的二級橫向菜單條實例

    這篇文章主要介紹了js實現(xiàn)的二級橫向菜單條,是非常美觀簡潔的二級導(dǎo)航條效果,可實現(xiàn)針對鼠標事件的動態(tài)響應(yīng)及頁面樣式切換功能,簡單實用,需要的朋友可以參考下
    2015-08-08
  • Position屬性之relative用法

    Position屬性之relative用法

    Relative是position的一個屬性,是相對定位,通過本篇文章給大家介紹Position屬性之relative用法,對position屬性relative相關(guān)知識感興趣的朋友一起學習吧
    2015-12-12
  • javascript設(shè)計模式 – 迭代器模式原理與用法實例分析

    javascript設(shè)計模式 – 迭代器模式原理與用法實例分析

    這篇文章主要介紹了javascript設(shè)計模式 – 迭代器模式原理與用法,結(jié)合實例形式分析了javascript迭代器模式相關(guān)概念、原理、用法及操作注意事項,需要的朋友可以參考下
    2020-04-04

最新評論

松江区| 民权县| 永靖县| 苗栗市| 奎屯市| 天津市| 龙陵县| 尚志市| 密山市| 含山县| 芜湖市| 饶平县| 新丰县| 万宁市| 德昌县| 上思县| 罗田县| 南阳市| 南平市| 浙江省| 清徐县| 塔城市| 韶山市| 姜堰市| 贵德县| 慈利县| 黎川县| 翼城县| 孝感市| 红桥区| 阳谷县| 甘孜| 百色市| 洪洞县| 丹棱县| 延津县| 军事| 邵阳县| 陕西省| 新安县| 岳阳县|