我有一个网页,其代码无法修改,我只能在某些地方添加一些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/