jQuery事件处理程序总是按照绑定的顺序执行 - 任何方式都可以解决这个问题?jQuery事件处理程序总是以绑定的顺序执行,这可能很烦人。例如:$('span').click(doStuff1);$('span').click(doStuff2);单击跨度将导致doStuff1()触发,然后doStuff2()。在我绑定doStuff2()时,我想在 doStuff1()之前选择绑定它,但似乎没有任何简单的方法来执行此操作。我想大多数人会说,只需编写如下代码:$('span').click(function (){
doStuff2();
doStuff1();});但这只是一个简单的例子 - 在实践中,这样做并不总是方便。在某些情况下,您要绑定事件,并且您绑定的对象已经有事件。在这种情况下,您可能只希望在任何其他现有事件之前触发新事件。那么在jQuery中实现这一目标的最佳方法是什么?
3 回答
梦里花落0921
TA贡献1772条经验 获得超6个赞
您可以执行事件的自定义命名空间。
$('span').bind('click.doStuff1',function(){doStuff1();});$('span').bind('click.doStuff2',function(){doStuff2();});
然后,当您需要触发它们时,您可以选择订单。
$('span').trigger('click.doStuff1').trigger('click.doStuff2');
要么
$('span').trigger('click.doStuff2').trigger('click.doStuff1');
此外,只需触发click按钮,它们按照绑定的顺序触发......所以你仍然可以
$('span').trigger('click');
- 3 回答
- 0 关注
- 486 浏览
添加回答
举报
0/150
提交
取消