0

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

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

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

这个站点提供了一种方法——他们通过在一个时间间隔内用新事件更新列表来将鼠标事件聚集到一个列表中。我希望有一种没有计时器的自动化方式。

4

1 回答 1

0

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

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

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

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

于 2009-07-08T08:47:40.180 回答