javascript - 更改同一元素上多个单击事件的优先级

标签 javascript jquery events click operator-precedence

我有一个网页,其代码无法修改,我只能在某些地方添加一些javascript/jquery。

嗯,已经有一个带有与其关联的点击事件的图像。据我所知元素 CLASS,我添加了自己的点击事件监听器:

$(".co-page-link").click(function(e) {
    ....
}

问题是我的点击事件在之前定义的事件之前触发,我想更改此行为。如何才能实现这一目标?

谢谢。

最佳答案

如果没有其他点击处理程序,您可以颠倒绑定(bind)处理程序的顺序:

[].reverse.call($._data($('.co-page-link')[0]).events.click);

如果有多个具有“.co-page-link”类的元素,请考虑使用循环。

请注意,此方法不受公开支持,语法可能因版本而异。在较旧的 jquery 版本中,使用 $.data()

对于更多处理程序,如果您希望最后一个处理程序成为第一个被解雇的处理程序,您可以像这样取消移动处理程序:

//set this handler in first with keeping other already bound events
var myH = $._data( $(".co-page-link")[0], "events" ).click.pop();
$._data( $(".co-page-link")[0], "events" ).click.unshift(myH);

关于javascript - 更改同一元素上多个单击事件的优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17468868/

相关文章:

javascript - 如何使AudioContext()和RequestAnimationFrame()在当前浏览器中运行

Javascript document.addEventListener 仅适用于 1 个键码

javascript - 获取选定的值以添加事件 fullCalendar

javascript - MVC : How to pass back next page url in the html to the client?

c# - 当非双击时如何处理 WinForms 控件单击事件

MySql 创建事件错误

javascript - 函数结束时新元素消失

javascript - 表单提交后在同一个弹出窗口中显示成功消息

jquery - 将拖动事件绑定(bind)到 div 中的图像 - jquery

c# - 在另一个窗口中监听 MediaEnded 事件