亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

js之事件冒泡和事件捕獲詳細介紹

 更新時間:2013年10月28日 16:01:17   作者:  
事件——怎樣使用事件以及IE和DOM事件模型之間存在哪些主要差別,有需要的朋友可以參考一下

(1)冒泡型事件:事件按照從最特定的事件目標到最不特定的事件目標(document對象)的順序觸發(fā)。

  IE 5.5: div -> body -> document

  IE 6.0: div -> body -> html -> document

  Mozilla 1.0: div -> body -> html -> document -> window

(2)捕獲型事件(event capturing):事件從最不精確的對象(document 對象)開始觸發(fā),然后到最精確(也可以在窗口級別捕獲事件,不過必須由開發(fā)人員特別指定)。

(3)DOM事件流:同時支持兩種事件模型:捕獲型事件和冒泡型事件,但是,捕獲型事件先發(fā)生。兩種事件流會觸及DOM中的所有對象,從document對象開始,也在document對象結(jié)束。

  DOM事件模型最獨特的性質(zhì)是,文本節(jié)點也觸發(fā)事件(在IE中不會)。

支持W3C標準的瀏覽器在添加事件時用addEventListener(event,fn,useCapture)方法,基中第3個參數(shù)useCapture是一個Boolean值,用來設置事件是在事件捕獲時執(zhí)行,還是事件冒泡時執(zhí)行。而不兼容W3C的瀏覽器(IE)用attachEvent()方法,此方法沒有相關(guān)設置,不過IE的事件模型默認是在事件冒泡時執(zhí)行的,也就是在useCapture等于false的時候執(zhí)行,所以把在處理事件時把useCapture設置為false是比較安全,也實現(xiàn)兼容瀏覽器的效果。

事件捕獲階段:事件從最上一級標簽開始往下查找,直到捕獲到事件目標(target)。
事件冒泡階段:事件從事件目標(target)開始,往上冒泡直到頁面的最上一級標簽。

假設一個元素div,它有一個下級元素p。
<div>
  <p>元素</p>
</div>
這兩個元素都綁定了click事件,如果用戶點擊了p,它在div和p上都觸發(fā)了click事件,那這兩個事件處理程序哪個先執(zhí)行呢?事件順序是什么?
 
兩種模型
以前,Netscape和Microsoft是不同的實現(xiàn)方式。

Netscape中,div先觸發(fā),這就叫做事件捕獲。

Microsoft中,p先觸發(fā),這就叫做事件冒泡。

兩種事件處理順序剛好相反。IE只支持事件冒泡,Mozilla, Opera 7 和 Konqueror兩種都支持,舊版本的Opera's 和 iCab兩種都不支持 。

事件捕獲
當你使用事件捕獲時,父級元素先觸發(fā),子級元素后觸發(fā),即div先觸發(fā),p后觸發(fā)。

事件冒泡
當你使用事件冒泡時,子級元素先觸發(fā),父級元素后觸發(fā),即p先觸發(fā),div后觸發(fā)。

W3C模型
W3C模型是將兩者進行中和,在W3C模型中,任何事件發(fā)生時,先從頂層開始進行事件捕獲,直到事件觸發(fā)到達了事件源元素。然后,再從事件源往上進行事件冒泡,直到到達document。

程序員可以自己選擇綁定事件時采用事件捕獲還是事件冒泡,方法就是綁定事件時通過addEventListener函數(shù),它有三個參數(shù),第三個參數(shù)若是true,則表示采用事件捕獲,若是false,則表示采用事件冒泡。

ele.addEventListener('click',doSomething2,true)

true=捕獲

false=冒泡

傳統(tǒng)綁定事件方式
在一個支持W3C DOM的瀏覽器中,像這樣一般的綁定事件方式,是采用的事件冒泡方式。

ele.onclick = doSomething2

IE瀏覽器
如上面所說,IE只支持事件冒泡,不支持事件捕獲,它也不支持addEventListener函數(shù),不會用第三個參數(shù)來表示是冒泡還是捕獲,它提供了另一個函數(shù)attachEvent。

ele.attachEvent("onclick", doSomething2);

附:事件冒泡(的過程):事件從發(fā)生的目標(event.srcElement||event.target)開始,沿著文檔逐層向上冒泡,到document為止。

事件的傳播是可以阻止的:
• 在W3c中,使用stopPropagation()方法
• 在IE下設置cancelBubble = true;
在捕獲的過程中stopPropagation();后,后面的冒泡過程也不會發(fā)生了~
3.阻止事件的默認行為,例如click <a>后的跳轉(zhuǎn)~
• 在W3c中,使用preventDefault()方法;
• 在IE下設置window.event.returnValue = false;
4.哇,終于寫完了,一邊測試一邊寫的額,不是所有的事件都能冒泡,例如:blur、focus、load、unload,(這個是從別人的文章里摘過來的,我沒測試)。

相關(guān)文章

  • js實現(xiàn)表單檢測及表單提示的方法

    js實現(xiàn)表單檢測及表單提示的方法

    這篇文章主要介紹了js實現(xiàn)表單檢測及表單提示的方法,涉及javascript表單元素提示效果的相關(guān)技巧,非常簡單實用,需要的朋友可以參考下
    2015-08-08
  • 基于javascript實現(xiàn)圖片切換效果

    基于javascript實現(xiàn)圖片切換效果

    這篇文章主要介紹了基于javascript實現(xiàn)圖片切換效果的相關(guān)資料,需要的朋友可以參考下
    2016-04-04
  • JS實現(xiàn)的簡單折疊展開動畫效果示例

    JS實現(xiàn)的簡單折疊展開動畫效果示例

    這篇文章主要介紹了JS實現(xiàn)的簡單折疊展開動畫效果,可實現(xiàn)類似百度頁面分享按鈕一樣的折疊展開動畫效果,涉及javascript頁面元素屬性動態(tài)操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2018-04-04
  • js 實現(xiàn)打印網(wǎng)頁中定義的部分內(nèi)容的代碼

    js 實現(xiàn)打印網(wǎng)頁中定義的部分內(nèi)容的代碼

    有時候頁面需要打印功能,如果再做一個頁面不利于優(yōu)化,兩個頁面內(nèi)容一樣了,所以可以用js實現(xiàn)內(nèi)容的打印不需要的就不打印。
    2010-04-04
  • javascript中利用柯里化函數(shù)實現(xiàn)bind方法

    javascript中利用柯里化函數(shù)實現(xiàn)bind方法

    這篇文章主要為大家詳細介紹了javascript中利用柯里化函數(shù)實現(xiàn)bind方法,感興趣的小伙伴們可以參考一下
    2016-04-04
  • webpack熱模塊替換(HMR)/熱更新的方法

    webpack熱模塊替換(HMR)/熱更新的方法

    模塊熱替換(HMR)的作用是,在應用運行時,無需刷新頁面,便能替換、增加、刪除必要的模塊,本篇文章主要介紹了webpack熱模塊替換(HMR)/熱更新的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • JS異步文件分片斷點上傳的實現(xiàn)思路

    JS異步文件分片斷點上傳的實現(xiàn)思路

    在項目中有時會遇到大文件上傳,經(jīng)常會出現(xiàn)鏈接超時的問題,所以就需要使用文件分片上傳的方式來上傳大文件。下面通過本文給大家介紹js異步文件分片斷點上傳的實例代碼,需要的的朋友參考下吧
    2016-12-12
  • JavaScript設計模式中的橋接和中介者模式

    JavaScript設計模式中的橋接和中介者模式

    這篇文章主要介紹了JavaScript設計模式中的橋接和中介者模式,橋接設計模式是一種偏向于組合的設計模式,而非繼承的設計模式,實現(xiàn)的細節(jié)從一個模塊推送給另一個具有單獨模塊的對象,而中介者設計模式是指通過一個中介者對象封裝一系列的對象交互
    2022-06-06
  • jquery在Chrome下獲取圖片的長寬問題解決

    jquery在Chrome下獲取圖片的長寬問題解決

    需要獲得圖片的長寬,在IE、FireFox下均正常,就TMD在Chrome中不行,有人說是Chrome版本的問題,最終終于找到了解決方法,在這與大家分享下
    2013-03-03
  • 詳談js遍歷集合(Array,Map,Set)

    詳談js遍歷集合(Array,Map,Set)

    下面小編就為大家?guī)硪黄斦刯s遍歷集合(Array,Map,Set)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04

最新評論