我有几个对象正在侦听change
事件,但我需要它们按指定的顺序启动。
是否可以在jQuery中自定义几个绑定对象的气泡顺序?
答案 0 :(得分:1)
据我所见,有一系列处理程序存储所有处理程序,这些处理程序引用了指定的函数。因此,当您为事件添加新函数时,它会在该数组的末尾出现,这意味着类似下面的代码:
$("SomeElement")
.live(
{
click: function ()
{
// This is handler named A.
alert("A");
}
}
);
$("SomeElement")
.live(
{
click: function ()
{
// This is handler named B.
alert("B");
}
}
);
在<{1}}事件触发后>> 将显示
。但是当你改变地方时:
"click"
在$("SomeElement")
.live(
{
click: function ()
{
// This is handler named B.
alert("B");
}
}
);
$("SomeElement")
.live(
{
click: function ()
{
// This is handler named A.
alert("A");
}
}
);
事件触发时将在之前显示。
您可以通过这种方式订购添加处理程序,因为javascript代码是从上下方向执行的,我相信这是唯一的方法。
希望它有所帮助。
干杯
答案 1 :(得分:1)
不幸的是,不能自定义事件气泡订单。
为了达到您想要的效果,我建议 jQuery自定义事件。
示例:
$("#YOURELEMENT").trigger('CUSTOMEVENT'); //create a new custom event
$("#YOURELEMENT2").bind('CUSTOMEVENT',function(e){ ... }); //listen for new custom event
这里有一个good tutorial。