我使用了一个 jQuery 插件,并单独编写了我自己的 jQuery,它在 dom 就绪时进行了初始化。如果插件和我的代码都对事件做了一些事情(比如点击了一个 div),我怎么知道哪个代码首先运行?
另外,有没有办法指定我想先运行哪个代码?谢谢
我使用了一个 jQuery 插件,并单独编写了我自己的 jQuery,它在 dom 就绪时进行了初始化。如果插件和我的代码都对事件做了一些事情(比如点击了一个 div),我怎么知道哪个代码首先运行?
另外,有没有办法指定我想先运行哪个代码?谢谢
API 说Event handlers bound to an element are called in the same order that they were bound.
http://api.jquery.com/on/
是的,您可以通过在事件处理程序数组上使用诸如pop、unshift、"push"和"shift"之类的一些方法来覆盖事件处理程序的顺序......
例如,根据@roasted answer >> 将最后一个事件处理程序移至列表顶部:
var myH = $._data( $(".myclass")[0], "events" ).click.pop();
$._data( $(".myclass")[0], "events" ).click.unshift(myH);
console.log($._data( $(".myclass")[0], "events" ).click);
我建议您访问这个问题,它就是答案。