检测来自mouseevent的所有事件何时被触发?

时间:2009-07-08 00:27:29

标签: javascript javascript-events

我想知道鼠标事件的所有事件何时被触发。

例如,如果我在文档和元素上注册了侦听器,然后单击该元素,我可以触发多个事件(如果结果事件冒泡则更多)。

我如何知道该点击产生的所有事件何时完成?

This site提供了一种方法 - 通过在一个时间间隔内使用新事件更新列表,将鼠标事件聚类到列表中。我希望没有计时器的自动化方式。

1 个答案:

答案 0 :(得分:0)

如果您只想在所有事件完成后运行某些代码,则应使用值为0的超时:

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

Javascript中的计时器在同一个线程上运行,因此在其他Javascript代码运行时它们甚至不会计数。当线程空闲时,将设置计数为0的计时器。

您提到的网站不会按时间间隔更新该列表 - 每次事件使用所有这些对象上的处理程序触发时,它实际上会更新该列表。使用时间间隔捕捉事件是不可能的。