问题概述
在jQuery中,绑定处理程序的顺序是在绑定到同一元素时它们将被执行的顺序.
例如:
$('#div1').bind('click',function(){ // code runs first }); $('#div1').bind('click',function(){ // code runs second });
但是,如果我希望第二个绑定代码先运行怎么办?
.
我目前的解决方案
$.data(domElement,'events')['click'].unshift({ type : 'click',guid : null,namespace : "",data : undefined,handler: function() { // code } });
.
题
我的解决方案有什么问题吗?
我可以安全地使用null作为guid的值吗?
提前致谢.
.
解决方法
有一个名为
eventstack的有趣插件.它允许您将事件绑定到事件队列的顶部或底部.我不知道你的问题有多普遍,或者你是想要反转还是随意命令堆栈中的事件,但插件可能会简化你的任务.
如果您希望按照特定的顺序组装队列,可以尝试this answer中建议的方法 – 构建可以依次触发对方的自定义事件.
您的方法可能最符合您的要求,但也许这些也是选项.