javascript - jQuery 事件 : prepend a callback handler to already existing ones

标签 javascript jquery callback click jquery-events

网页上的元素带有点击和/或按键处理程序。如果我添加一个新的,它将在它们之后执行。我需要一种方法来添加一个新的回调,该回调被添加到事件处理程序列表中,以便预先执行。使用 jQuery 怎么可能?

更新

为什么我不能只使用 jQuery 的解除绑定(bind)方法?我将我的 jQuery 代码注入(inject)到任何网页,因此我不知道是否使用了 JavaScript 框架以及使用了哪个 JavaScript 框架。我需要一种通用的方法来检测事件处理程序并在我的前面加上。 (在你问之前,我正在构建一个“记录器”应用程序来跟踪用户的操作以存储它们并在以后执行它们。)

更新 2

我只用Firefox,不需要兼容IE。我必须等待页面完全加载,然后调用我的 jQuery 脚本。

最佳答案

我认为如果您使用事件捕获(在事件到达元素之前调用祖先的处理程序)而不是冒泡(子 --> 祖先),这可能会起作用。这是一种在到达目标元素之前拦截事件的方法。

大多数事件处理程序都使用事件冒泡。根据 w3c,一个事件首先被捕获,然后它再次从目标冒泡。因此,如果您使用捕获将事件绑定(bind)到文档,它将首先对页面上的每个元素执行。

http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/events.html#Events-flow-capture

您将绑定(bind)处理程序:(第三个参数是您是否要使用事件捕获)

document.body.addEventListener('click',handler,true)

在执行被点击元素的事件处理程序之前,元素中的每次点击都会执行此操作。我不确定浏览器是否支持。

关于javascript - jQuery 事件 : prepend a callback handler to already existing ones,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9052349/

相关文章:

onClick 的 Javascript 2 函数仅运行最后一个

javascript - 准备使网站与 Internet Explorer 8 兼容

javascript - 单击div外部无法关闭iphone中的切换栏菜单

javascript - Greasemonkey @require jQuery 不工作 "Component not available"

java - 匿名类重写与传递接口(interface),用于在 Java 中设计回调

javascript - 使用 cuechange 事件和轨道元数据时出现问题(HTML5 视频)

javascript - jQuery load() 函数 - 无法从动态加载的标题内容中获取高度

javascript - 将图像从视频 JS 保存到 Canvas

javascript - webkitTransitionEnd 在重绘/回流之前被触发

java - 接口(interface)实现之间的用例