亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于冒泡問題

之前章節里提到的冒泡事件是:子元素如果綁定了某一事件(比如說mouseover),如果子元素出觸發了mouseover事件,它會一直往上找父元素上的mouseover事件,如果父元素有mouseover事件,那么父元素的mouseover也會被觸發。也就是說父元素和子元素都綁定了相同事件才會出現冒泡現象。

但是這里的li元素并沒有綁定任何事件,怎么往上冒泡呢?換句話說,綁定的是ul元素,為什么起作用的是li元素?



正在回答

3 回答

我覺得,本教程的“綁定”這個詞用的不好,事件這個東西應該是稱之為“監聽”更為恰當。

當單擊一個元素、或滑入滑出元素時,都會由該元素觸發事件,然后一層一層向上冒泡,如果一直到body都沒有遇到某元素去監聽這個事件,那就沒有任何反應,如果該元素有監聽該單擊事件,那就會知道這個事件,如果該元素的父代或祖代有添加監聽事件,也會知道這個事件。


打個比喻,ABCDEF站成一排,A倒了一桶巧克力,從A流向F,

A用手沾了舔了舔,知道是甜的,A倒的

D用手沾了舔了舔,也知道是甜的,A倒的

這就是A和D監聽了“倒一桶巧克力”這個事件

如果沒有任何人舔,那這桶巧克力一樣從A流向F


1 回復 有任何疑惑可以回復我~

冒泡的本質是繼承,為什么很多人都是從下往上的去理解呢? 因為是繼承,所以ul綁定事件后,該事件也被綁定在了它的子孫元素上,所以你點擊任何一個它的子孫元素都會觸發事件。如果這個子孫元素本身也綁定了一個一樣的事件,那么就會觸發兩次該事件。

假設一下,a-b-c a是祖先 c是子孫 ;將a,b,c同時綁定click,那么根據繼承的原理,a只綁定了一個click事件,b兩個,c三個;同理,如果只有a綁定事件,b,c也只綁定了一次事件。

2 回復 有任何疑惑可以回復我~

不存在綁定的說法,jquery只是處理觸發的事件,事件本身就有,如果不捕獲處理,事件會一直冒泡

這里只是在ul處理捕獲的事件,任何文檔對象如ul,li都可以觸發事件,只是在于是否捕獲處理

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

關于冒泡問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號