问题概述
在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的值吗?
提前致谢。
答案 0 :(得分:1)
有一个名为eventstack的有趣插件。它允许您将事件绑定到事件队列的顶部或底部。我不知道你的问题有多普遍,或者你是想要反转还是随意命令堆栈中的事件,但插件可能会简化你的任务。
如果您希望按照特定的顺序组装队列,可以尝试this answer中建议的方法 - 构建可以依次互相触发的自定义事件。
您的方法可能最符合您的要求,但也许这些也是选项。