首页 > 解决方案 > 防止在 JavaScript 中冒泡和捕获事件触发

问题描述

是否可以防止在 JavaScript 中冒泡和捕获事件触发?

e.stopPropagation()不是我要找的。

在我的情况下,我只想要一个直接的窗口模糊来触发事件。在每个子控件模糊的窗口上触发模糊事件会影响性能。(我相信它与问题无关,但仍然为了避免 xyz 问题,我会提到我正在使用窗口上的模糊事件来检查模糊是否由于 iframe 点击而发生,如果确实如此,那么我运行了一些代码。也就是说,我需要一种将模糊侦听器附加到窗口的方法,以便模糊侦听器仅在窗口模糊上运行,而不是在其子模糊上运行。)

也许有一种方法可以仅将事件侦听器添加到窗口模糊的目标阶段?或者听者总是会在气泡和捕获时被调用,这是不可能避免的?

标签: javascriptwindowblurevent-bubbling

解决方案


event bubbling从孩子到父母。所以它本质上是你想要阻止的事件捕获。

当您使用添加事件侦听器时

window.addEventListener("focus", callback, true/false)

这第三个论点建议捕获或冒泡。因此,如果您只保留它,false事件就会冒泡,并且由于 window 是最顶层的元素,它不会传播到其他任何地方。


推荐阅读