摘要:為什么要弄清楚事件捕獲和冒泡以及事件委托一面試必問的問題二在過去糟糕的日子里,瀏覽器的兼容性比現(xiàn)在要小得多,網(wǎng)景只使用事件捕獲,而只使用事件冒泡。
為什么要弄清楚事件捕獲和冒泡以及事件委托
一、面試必問的問題三者的關(guān)系是怎樣的呢
二、在過去糟糕的日子里,瀏覽器的兼容性比現(xiàn)在要小得多,Netscape(網(wǎng)景)只使用事件捕獲,而Internet Explorer只使用事件冒泡。當(dāng)W3C決定嘗試規(guī)范這些行為并達(dá)成共識時(shí),他們最終得到了包括這兩種情況(捕捉和冒泡)的系統(tǒng),最終被應(yīng)用在現(xiàn)在瀏覽器里。
三、容易把事件委托理解為多帶帶的執(zhí)行階段
一、事件捕獲和冒泡是現(xiàn)代瀏覽器的執(zhí)行事件的兩個(gè)不同階段事件冒泡和捕獲的運(yùn)行圖
二、事件委托是利用冒泡階段的運(yùn)行機(jī)制來實(shí)現(xiàn)的
運(yùn)行條件:當(dāng)一個(gè)事件發(fā)生在具有父元素的的元素上時(shí),現(xiàn)代瀏覽器根據(jù)事件添加時(shí)的設(shè)置來執(zhí)行(冒泡或者捕獲)
通過 addEventListener() 的第三個(gè)屬性來設(shè)置事件是通過捕獲階段注冊的(true),還是冒泡階段注冊的(false)。默認(rèn)情況下是false。
事件冒泡從實(shí)際操作的元素(事件)向上級父元素一級一級執(zhí)行下去,直到達(dá)到
有些時(shí)候父元素和子元素都定義了click事件,但是不希望點(diǎn)擊子元素的時(shí)候執(zhí)行父元素的click事件(例如dialog彈窗的遮罩層如果是父元素,而dialog彈窗內(nèi)容層是子元素,同時(shí)可以通過點(diǎn)擊遮罩層來關(guān)閉彈窗,但是點(diǎn)擊內(nèi)容層不關(guān)閉彈窗),可以通過stopPropagation()在子元素上阻止冒泡。事件捕獲(一般不會用到)
瀏覽器檢查元素的最外層祖先,是否在捕獲階段中注冊了一個(gè)onclick事件處理程序,如果是,則運(yùn)行它。事件捕獲和冒泡的區(qū)別
然后,它移動到中的下一個(gè)元素(點(diǎn)擊的元素的父元素),并執(zhí)行相同的操作,然后是下一個(gè)元素(點(diǎn)擊的元素的父元素),依此類推,直到到達(dá)實(shí)際點(diǎn)擊的元素。
執(zhí)行順序的不同
冒泡:
捕獲:
如果你想要在大量子元素(包括動態(tài)添加的)中單擊任何一個(gè)就可以運(yùn)行一段代碼,這個(gè)時(shí)候可以把事件監(jiān)聽器設(shè)置在父節(jié)點(diǎn)上。
實(shí)現(xiàn)方式 jquery 中的 on
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/51868.html
摘要:為什么要弄清楚事件捕獲和冒泡以及事件委托一面試必問的問題二在過去糟糕的日子里,瀏覽器的兼容性比現(xiàn)在要小得多,網(wǎng)景只使用事件捕獲,而只使用事件冒泡。 為什么要弄清楚事件捕獲和冒泡以及事件委托 一、面試必問的問題二、在過去糟糕的日子里,瀏覽器的兼容性比現(xiàn)在要小得多,Netscape(網(wǎng)景)只使用事件捕獲,而Internet Explorer只使用事件冒泡。當(dāng)W3C決定嘗試規(guī)范這些行為并達(dá)成...
摘要:事件冒泡事件捕獲事件委托事件冒泡事件捕獲二者聯(lián)系與區(qū)別聯(lián)系都是事件觸發(fā)時(shí)序問題的術(shù)語。綁定事件方法的第三個(gè)參數(shù)是控制事件觸發(fā)順序的,默認(rèn)為,即事件冒泡若為即事件捕獲。 事件冒泡 、事件捕獲 、 事件委托 1、事件冒泡 、事件捕獲 二者聯(lián)系與區(qū)別 聯(lián)系: (1)、都是 事件觸發(fā)時(shí)序問題 的術(shù)語。 (2)、綁定事件方法(addEventListener)的第三個(gè)參數(shù)是控制事件觸發(fā)順序的,默...
摘要:而事件分為個(gè)級別級事件處理程序,級事件處理程序和級事件處理程序。級中沒有規(guī)范事件的相關(guān)內(nèi)容,所以沒有級事件處理。 showImg(https://segmentfault.com/img/bVburYR?w=499&h=400); HTML依托于JavaScript來實(shí)現(xiàn)用戶與WEB網(wǎng)頁之間的動態(tài)交互,接收用戶操作并做出相應(yīng)的反饋,而事件在此間則充當(dāng)橋梁的重要角色。 日常開發(fā)中,經(jīng)常會...
摘要:查閱了一些資料之后才知道原來這就是事件冒泡,下面是我對事件冒泡和事件捕獲的理解。本文參考文章之事件冒泡詳解事件委托及其原理 前段時(shí)間開發(fā)一個(gè)小項(xiàng)目的時(shí)候遇到一個(gè)問題,即給一個(gè)元素以及它的父元素綁定了click事件,這個(gè)時(shí)候我點(diǎn)擊這個(gè)元素時(shí),父級元素的clik事件也會觸發(fā),這顯然不符合要求。查閱了一些資料之后才知道原來這就是事件冒泡,下面是我對事件冒泡和事件捕獲的理解。 事件冒泡:事件從...
閱讀 5296·2021-09-22 15:50
閱讀 1880·2021-09-02 15:15
閱讀 1177·2019-08-29 12:49
閱讀 2553·2019-08-26 13:31
閱讀 3471·2019-08-26 12:09
閱讀 1220·2019-08-23 18:17
閱讀 2747·2019-08-23 17:56
閱讀 2937·2019-08-23 16:02