2009-07-08 32 views
0

我想知道什麼時候發生了鼠標事件的所有事件。例如,如果我在文檔和元素上註冊了偵聽器,然後單擊該元素,我可以獲取多個事件觸發(如果結果事件冒泡,則觸發更多事件)。檢測mouseevent的所有事件何時開始?

我該如何知道點擊產生的所有事件何時完成?

This site提供了一種這樣做的方法 - 它們通過在一段時間間隔內用新事件更新列表來將鼠標事件聚類成列表。我希望沒有計時器的自動化方式。

回答

0

如果你只是想所有的事件都完成後,運行一些代碼,你應該使用帶有超時值爲0:

window.setTimeout(function() 
{ 
    // All events have finished, so we can run our code now 
}, 0); 

計時器在Javascript在同一線程上運行,因此當其他Javascript代碼正在運行時,它們甚至不計數。設置計數器爲0的計時器將在線程空閒時運行。

您提到的網站不會在一個時間間隔內更新該列表 - 每次使用所有這些對象上的處理程序觸發事件時,它實際上都會更新該列表。使用時間間隔來捕捉事件是不可能的。

+0

感謝您的建議。它看起來ppk的站點使用超時將事件聚集到列表上(請參閱log.end及其調用方式)。 – jedierikb 2009-07-08 11:54:34

相關問題