我只是想就 JS 中的事件委托(delegate)模式(冒泡和捕获)达成共识。
现在我明白,根据特定的用例,人们可能希望使用捕获阶段而不是冒泡,反之亦然,但我想了解大多数一般情况下首选哪种委托(delegate)模式以及为什么(对我来说似乎是冒泡模式) )。
或者换句话说,W3C 背后是否有原因 addEventListener
实现有利于冒泡模式。 [仅当您指定第三个参数且其值为 true 时才会启动捕获。但是,您可能会忘记第三个参数和冒泡模式已启动]
我查找了 JQuery 的绑定(bind)函数来得到我的问题的答案,它似乎甚至不支持捕获阶段的事件(在我看来,因为 IE 不支持捕获模式)。
看起来冒泡模式是默认选择,但为什么呢?
最佳答案
过去这是一个平台问题,Internet Explorer 有冒泡模型,而 Netscape 更多的是捕获(但支持两者)。
W3C 模型要求您能够选择您想要的模型。
我认为冒泡更受欢迎,因为如上所述,有些平台只支持冒泡......它作为“默认”模式是有意义的。
您选择哪一个很大程度上取决于您正在做的事情以及对您来说有意义的事情。
关于javascript - 事件捕获与事件冒泡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2661199/