什么是冒泡概念?

时间:2009-08-31 03:15:52

标签: events event-bubbling

我听说过事件和SO答案“冒泡”,但这与气泡有什么关系?

2 个答案:

答案 0 :(得分:15)

事件冒泡是信息在深层结构中向上移动的想法,当适当的设计要求通常信息只能向下流动时。

从基本的角度来说,想一个单一的对象。设计得当,这个对象应该只知道它自己的子对象。它应该与其父母没有直接的互动。反过来,它的子对象和父对象应该遵循相同的规则。实际上,这意味着信息只能向下流动 - 父级可以调用方法,向子级发送数据或从子级中提取数据,但子级不能强制对其父级执行相同的操作。

想想当你在水下吹气泡时会发生什么 - 你不必空气推向地面 - 你只需松开它就可以自行移动。同样的概念适用于事件冒泡 - 更深层次的控制只是简单地“释放”他们的信息 - 通常是通过一个事件 - 并且它“漂浮”在链条上而不直接调用任何东西。

对于像Stackoverflow这样的网站(或几乎任何类型的网站),冒泡的概念是相同的。显然,每个帖子都不应该直接放在主页上,但是当一个帖子更新后,该事件就会从层次结构中最深处的一个帖子中释放出来 - 一个帖子 - 并最终漂浮到顶层,在那里它处理(选择是否在主页上显示)。

答案 1 :(得分:3)

如果你问的是这个术语,我想这是一个类似于'冒泡'到顶部的事件,就像气泡在液体中一样。

如果你问的是什么事件冒泡是一个被一个对象捕获的事件,它将把它重新发送到正在监听它的任何其他对象。

引用一篇好文章here

  

......一种叫做事件冒泡的技术   允许儿童控制   将事件传播到其收容区   层次结构。事件冒泡启用   从更多的事件中筹集的事件   控制中方便的位置   层次结构并允许事件处理程序   作为原始控件附加   以及暴露的控制   冒泡的事件。