指示事件jquery命令

时间:2013-08-28 09:53:59

标签: javascript jquery events

是否可以规定应该触发jQuery事件的顺序?

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

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

应始终首先触发FirstEvent,最后始终触发LastEvent。 SomeEvent在调用它时并不关心。

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

假设无法更改事件绑定的顺序。 还假设事件绑定到相同的DOMElement(或Elements),但不一定是相同的选择器(如上所述)

最后假设事件彼此之间一无所知,是完全不同的(也可能是不相关的)代码段。

1 个答案:

答案 0 :(得分:0)

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

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

这会触发C1 clickC2 click,然后评估他们的回复。如果它们都成功{return true},则C2 clcik事件被触发,否则执行clickError