是否可以规定应该触发jQuery事件的顺序?
即
<div class="C1 C2 C3"></div>
$('.C1').click(SomeClickEvent);
$('.C2').click(FirstEvent);
$('.C3').click(LastEvent);
应始终首先触发FirstEvent,最后始终触发LastEvent。 SomeEvent在调用它时并不关心。
主要原因是FirstEvent可能希望通过返回false来防止其他事件被触发
假设无法更改事件绑定的顺序。 还假设事件绑定到相同的DOMElement(或Elements),但不一定是相同的选择器(如上所述)
最后假设事件彼此之间一无所知,是完全不同的(也可能是不相关的)代码段。
答案 0 :(得分:0)
通过使用鲜为人知的.when()
方法,您可以强制某些事件按特定顺序发生,并将最终结果基于每个结果。
$.when($('.C1').click(), $('.C2').click())
.then($('.C2').click(), clickError);
这会触发C1 click
和C2 click
,然后评估他们的回复。如果它们都成功{return true},则C2 clcik事件被触发,否则执行clickError
。