如何将新函数绑定到元素的 onclick 事件,并使其在所有其他绑定函数之前运行
How to bind a new function to an element's onclick event and have it run before all other bound functions
我们希望使用浏览器扩展为现有页面添加功能。假设元素已经具有绑定到其 onclick
事件的函数。我正在将一个新函数绑定到该元素的onclick
。我想让我的函数在之前绑定到该事件的所有其他函数之前运行。在我的函数完成运行之前,我不希望它们开始执行。
我想知道如何在 JavaScript 中以这种方式绑定我的新函数。
你真的不能。事件侦听器通常按照它们附加到元素的顺序执行,您无法获取已添加的侦听器。如果您的插件不会在任何其他添加侦听器的代码之前执行,那么您唯一的机会就是尽早进入事件调度过程。
我能想到的最好的方法是在dom的最高点为捕获阶段添加一个侦听器:
document.documentElement.addEventListener("click", function(e) {
if (e.target == theElementInQuestion) // or check for e.target.id...
// do something with the event like
e.stopImmediatePropagation();
}, true /* sic! */);
相关文章:
- 如何在动态创建的节点上绑定函数
- 绑定函数时在IE7中未实现Javascript错误
- jQuery结合了2个绑定函数(类型错误:a是未定义的)
- Jquery函数无法处理动态加载的内容(不是绑定函数)
- 从console.log调用webpack绑定函数/类
- React没有绑定函数调用,尽管有相反的警告
- jQuery使用最后一个参数在Javascript循环中单击绑定函数
- 如何在React Native中为ListView中的每个元素绑定函数
- jquery绑定函数不起作用
- 具有绑定与未绑定函数的数组筛选器
- 绑定函数仅适用于最后一个元素
- 如何将新函数绑定到元素的 onclick 事件,并使其在所有其他绑定函数之前运行
- 绑定函数链接
- 动态 JS 拖动绑定函数限制在线拖动
- 绑定函数的返回语句中参数的推理是什么
- 在jQuery上动态绑定函数
- 确定 JavaScript 函数是否为绑定函数
- jQuery 绑定函数不起作用
- 反应组件中的绑定函数
- Javascript 绑定函数到 Ajax 加载事件