我读this关于路由事件的好文章,我明白了为什么我们有时需要冒泡事件,有时我们需要隧道事件。了解路由事件:为什么我需要泡沫和隧道事件?
我不明白的是,当我们使用隧道事件时,为什么在处理或到达源元素后,仍然会启动冒泡事件?
在此先感谢!
我读this关于路由事件的好文章,我明白了为什么我们有时需要冒泡事件,有时我们需要隧道事件。了解路由事件:为什么我需要泡沫和隧道事件?
我不明白的是,当我们使用隧道事件时,为什么在处理或到达源元素后,仍然会启动冒泡事件?
在此先感谢!
文章说,如果您将图像放在按钮上,并且该图像被点击,该图像的隧道事件将会被触发。但很有可能你也想要处理该点击,就好像按钮本身被点击一样,所以也会触发一个气泡事件,这个事件会触发按钮本身的点击事件(因为按钮拥有图像),所以你可以使用通常的按钮事件处理程序来处理图像点击,如点击按钮。
我还想补充一点,两者(隧道和泡泡)的事件是不同的。 对于隧道,我们使用PreviewXXX(例如:PreviewMouseDown),对于冒泡事件我们使用XXX(例如:MouseDown)事件。
按顺序,隧道事件首先从应用程序的根开始触发,并在源处结束。 Bubble事件被触发。
这两个事件都是非常有意义的。