我有几个对象在监听一个change
事件,但我需要它们以指定的顺序触发。
是否可以在 jQuery 中自定义多个绑定对象的冒泡顺序?
我有几个对象在监听一个change
事件,但我需要它们以指定的顺序触发。
是否可以在 jQuery 中自定义多个绑定对象的冒泡顺序?
据我所经历的,有一个处理程序数组存储所有引用分配函数的处理程序。因此,当您为事件添加新函数时,它会位于该数组的末尾,这意味着类似于下面的代码:
$("SomeElement")
.live(
{
click: function ()
{
// This is handler named A.
alert("A");
}
}
);
$("SomeElement")
.live(
{
click: function ()
{
// This is handler named B.
alert("B");
}
}
);
当事件触发时, B 将显示在A之后。"click"
但是当你改变地方时:
$("SomeElement")
.live(
{
click: function ()
{
// This is handler named B.
alert("B");
}
}
);
$("SomeElement")
.live(
{
click: function ()
{
// This is handler named A.
alert("A");
}
}
);
触发事件时, B 将显示在A之前。"click"
您可以通过这种方式订购添加处理程序,因为 javascript 代码从上向下执行,我相信这是唯一的方法。
希望能帮助到你。
干杯
不幸的是,您不能自定义事件冒泡顺序。
为了达到你想要的效果,我会推荐jQuery custom events。
例子:
$("#YOURELEMENT").trigger('CUSTOMEVENT'); //create a new custom event
$("#YOURELEMENT2").bind('CUSTOMEVENT',function(e){ ... }); //listen for new custom event
这是一个很好的教程。