2009-08-31 143 views

回答

13

事件冒泡是信息通過深層結構向上移動的想法,當適當的設計決定信息通常只應該向下流動時。

在非常基本的術語中,想象一個單一的對象。正確設計,這個對象應該只知道它自己的子對象。它不應該與其父母直接互動。反過來,它的孩子和父母對象也應遵循相同的規則。實際上,這意味着信息只能向下流動 - 父母可以調用方法,向孩子發送數據或從孩子中提取數據,但孩子不能強行向其父母做同樣的事情。

想象一下當你在水下吹氣泡會發生什麼 - 你不需要推向表面 - 你只需釋放它,它就可以自行移動。相同的概念適用於事件冒泡 - 更深層次的控制只是簡單地「釋放」他們的信息 - 通常是通過一個事件 - 並且它「直接」鏈上而不直接調用任何東西。

對於像Stackoverflow(或幾乎任何類型的網站)的網站,冒泡的概念是相同的。很顯然,每個帖子都不應該直接放在主頁上,但是當一個帖子被更新時,這個帖子會從層次結構中最深的一點發布 - 一個帖子 - 然後浮到最高層,處理(選擇是否顯示在主頁上)。

+0

非常簡潔的答案。 – 2009-08-31 03:35:01

+1

@Kirk,這是一個很好的答案,但我認爲你對簡潔的定義與我的不同:-)簡潔將是「事件或答案毫不費力地浮到頂端,就像水中的氣泡一樣」。 – paxdiablo 2009-08-31 04:06:40

+0

@Kirk @Pax我在想同樣的事情:)我很欣賞恭維,但即使我希望這個答案更短。有時候我會因爲我的解釋而被帶走。 – 2009-08-31 04:08:20

3

如果你問的是這個術語,我想這是一個類比事件'冒泡'直到頂部,就像液體中的氣泡一樣。

如果你問的是什麼事件冒泡,它是一個被一個對象捕獲的事件,它會將它反射到任何其他正在偵聽它的對象。

引述了一篇好文章here

...一個叫事件冒泡 技術,它允許一個子控件 傳播事件了其遏制 層次。事件冒泡使 事件從更 方便的位置在控制 層次得到提升,讓事件處理 連接到原來的控制, 以及對暴露 發泡的事件控制。