2012-10-30 38 views
3

我有一个关于事件的问题。如何在jQuery中暂停事件?

基本上,我想,当用户点击一个链接离开页面运行的jQuery方法。在这种方法我想查一些东西才离开,所以我知道我可以打电话:

e.preventDefault(); 

但如果我希望事件后继续我阻止事件?

任何建议如何处理呢?

谢谢!

回答

3

如果方法是同步的,你可以只从事件处理程序中调用它。在处理程序返回之前,默认操作不会执行,因此您有足够的时间来决定是否要防止它。

如果方法是异步事情变得更加复杂。因为它不可能等待的方法,你必须无条件地阻止默认行为,并有条件地再次触发了 - 可能与.trigger().triggerHandler() - 异步方法完成之后。

+0

只要检查本质上不是异步的。 – epascarello

+0

@epascarello:谢谢,我只是在编辑这个可能性。 – Jon

1

preventDefault和“希望事件继续”是截然相反的。 preventDefault的目的是不让默认事件继续。也许你想给你做检查,如果他们失败了,然后调用了preventDefault,而如果他们成功了,你不叫了preventDefault,让事件继续。实质上,将preventDefault包装在if()语句中。