【发布时间】:2020-08-07 11:15:36
【问题描述】:
由于dispatchEvent,根据docs,将应用:
正常的事件处理规则(包括捕获和可选 冒泡阶段)
我正在寻找类似的东西,但有一种方法可以跳过此过程并直接在元素上触发事件。在绕过处理阶段时触发默认元素事件行为。
如在window 级别捕获事件(在它到达其他捕获触发器之前)并将其直接传递给直接调用它的组件(文本区域)。
(例如在不经过层次结构的情况下触发文本区域的默认keydown)
我一直在尝试这样做,但如果在窗口级别有另一个事件,这将不起作用:
window.addEventListener("keydown", this.keyDown, true);
keyDown = (event) => {
event.preventDefault();
event.nativeEvent && event.nativeEvent.stopImmediatePropagation();
event.stopImmediatePropagation && event.stopImmediatePropagation();
event.stopPropagation();
// Pass event straight to the element
return false;
};
我希望在绕过处理的同时触发默认元素事件行为
【问题讨论】:
-
你在考虑 stopPropagation() 吗?
-
我正在研究如何 - 在窗口级别劫持事件后 - 直接在元素上触发它。我确实已经在使用
stopPropagation()。 -
最少的可生产代码将帮助我们弄清楚您的用例是什么,以及如何最好地帮助您。 :)
标签: javascript html event-handling dom-events