jQuery事件处理程序总是按照绑定的顺序执行 - 任何方式都可以解决这个问题?

jQuery事件处理程序总是按照绑定的顺序执行 - 任何方式都可以解决这个问题?

jQuery事件处理程序总是以绑定的顺序执行,这可能很烦人。例如:

$('span').click(doStuff1);$('span').click(doStuff2);

单击跨度将导致doStuff1()触发,然后doStuff2()

在我绑定doStuff2()时,我想 doStuff1()之前选择绑定它,但似乎没有任何简单的方法来执行此操作。

我想大多数人会说,只需编写如下代码:

$('span').click(function (){
    doStuff2();
    doStuff1();});

但这只是一个简单的例子 - 在实践中,这样做并不总是方便。

在某些情况下,您要绑定事件,并且您绑定的对象已经有事件。在这种情况下,您可能只希望在任何其他现有事件之前触发新事件。

那么在jQuery中实现这一目标的最佳方法是什么?


12345678_0001
浏览 319回答 3
3回答

慕妹3242003

您可以执行事件的自定义命名空间。$('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');
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JQuery