關(guān)于冒泡問題
之前章節(jié)里提到的冒泡事件是:子元素如果綁定了某一事件(比如說mouseover),如果子元素出觸發(fā)了mouseover事件,它會(huì)一直往上找父元素上的mouseover事件,如果父元素有mouseover事件,那么父元素的mouseover也會(huì)被觸發(fā)。也就是說父元素和子元素都綁定了相同事件才會(huì)出現(xiàn)冒泡現(xiàn)象。
但是這里的li元素并沒有綁定任何事件,怎么往上冒泡呢?換句話說,綁定的是ul元素,為什么起作用的是li元素?
2020-04-11
我覺得,本教程的“綁定”這個(gè)詞用的不好,事件這個(gè)東西應(yīng)該是稱之為“監(jiān)聽”更為恰當(dāng)。
當(dāng)單擊一個(gè)元素、或滑入滑出元素時(shí),都會(huì)由該元素觸發(fā)事件,然后一層一層向上冒泡,如果一直到body都沒有遇到某元素去監(jiān)聽這個(gè)事件,那就沒有任何反應(yīng),如果該元素有監(jiān)聽該單擊事件,那就會(huì)知道這個(gè)事件,如果該元素的父代或祖代有添加監(jiān)聽事件,也會(huì)知道這個(gè)事件。
打個(gè)比喻,ABCDEF站成一排,A倒了一桶巧克力,從A流向F,
A用手沾了舔了舔,知道是甜的,A倒的
D用手沾了舔了舔,也知道是甜的,A倒的
這就是A和D監(jiān)聽了“倒一桶巧克力”這個(gè)事件
如果沒有任何人舔,那這桶巧克力一樣從A流向F
2020-04-01
冒泡的本質(zhì)是繼承,為什么很多人都是從下往上的去理解呢? 因?yàn)槭抢^承,所以u(píng)l綁定事件后,該事件也被綁定在了它的子孫元素上,所以你點(diǎn)擊任何一個(gè)它的子孫元素都會(huì)觸發(fā)事件。如果這個(gè)子孫元素本身也綁定了一個(gè)一樣的事件,那么就會(huì)觸發(fā)兩次該事件。
假設(shè)一下,a-b-c a是祖先 c是子孫 ;將a,b,c同時(shí)綁定click,那么根據(jù)繼承的原理,a只綁定了一個(gè)click事件,b兩個(gè),c三個(gè);同理,如果只有a綁定事件,b,c也只綁定了一次事件。
2019-11-30
不存在綁定的說法,jquery只是處理觸發(fā)的事件,事件本身就有,如果不捕獲處理,事件會(huì)一直冒泡
這里只是在ul處理捕獲的事件,任何文檔對(duì)象如ul,li都可以觸發(fā)事件,只是在于是否捕獲處理