2012-10-30 46 views
3

我有一個關於事件的問題。如何在jQuery中暫停事件?

基本上,我想,當用戶點擊一個鏈接離開頁面運行的jQuery方法。在這種方法我想查一些東西才離開,所以我知道我可以打電話:

e.preventDefault(); 

但如果我希望事件後繼續我阻止事件?

任何建議如何處理呢?

謝謝!

回答

3

如果方法是同步的,你可以只從事件處理程序中調用它。在處理程序返回之前,默認操作不會執行,因此您有足夠的時間來決定是否要防止它。

如果方法是異步事情變得更加複雜。因爲它不可能等待的方法,你必須無條件地阻止默認行爲,並有條件地再次觸發了 - 可能與.trigger().triggerHandler() - 異步方法完成之後。

+0

只要檢查本質上不是異步的。 – epascarello

+0

@epascarello:謝謝,我只是在編輯這個可能性。 – Jon

1

preventDefault和「希望事件繼續」是截然相反的。 preventDefault的目的是不讓默認事件繼續。也許你想給你做檢查,如果他們失敗了,然後調用了preventDefault,而如果他們成功了,你不叫了preventDefault,讓事件繼續。實質上,將preventDefault包裝在if()語句中。