口述事件jquery顺序

Dictate event jquery order

本文关键字:顺序 jquery 事件      更新时间:2023-09-26

是否可以指定jQuery事件的激发顺序?

<div class="C1 C2 C3"></div>
$('.C1').click(SomeClickEvent);
$('.C2').click(FirstEvent);
$('.C3').click(LastEvent);

其中FirstEvent应始终首先激发,LastEvent应始终最后激发。SomeEvent不在乎何时调用它。

主要原因是FirstEvent可能希望通过返回错误来防止其他事件触发

假设事件绑定的顺序不能更改。还假设事件绑定到相同的DOMElement(或Elements),尽管不一定由相同的选择器(如上所述)

最后假设这些事件彼此一无所知,处于完全不同(可能不相关)的代码段中。

通过使用鲜为人知的.when()方法,可以强制某些事件按特定顺序发生,并根据每个单独的结果得出最终结果。

$.when($('.C1').click(), $('.C2').click())
  .then($('.C2').click(), clickError);

这将触发C1 clickC2 click,然后评估它们的响应。如果它们都成功{返回true},则触发C2 clcik事件,否则执行clickError