0

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

IE

<div class="C1 C2 C3"></div>

$('.C1').click(SomeClickEvent);
$('.C2').click(FirstEvent);
$('.C3').click(LastEvent);

其中 FirstEvent 应始终首先触发, LastEvent 应始终最后触发。SomeEvent 不关心它何时被调用。

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

假设事件绑定的顺序不能改变。还假设事件绑定到相同的 DOMElement(或元素),但不一定由相同的选择器(如上)

最后假设事件彼此一无所知,位于完全不同(并且可能不相关)的代码部分中。

4

1 回答 1

0

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

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

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

于 2013-08-28T10:05:01.730 回答