我想知道鼠标事件的所有事件何时被激发。例如,如果我在文档和一个元素上注册了侦听器,然后单击该元素,我可能会触发多个事件(如果生成的事件冒泡,则会触发更多事件)。我如何知道由该点击产生的所有事件何时完成?This site提供了一种方法--它们通过在一个时间间隔内用新事件更新列表来将鼠标事件聚集到一个列表中。
c9qzyr3d1#
如果您只想在所有事件完成后运行一些代码,则应该使用值为0的超时:
window.setTimeout(function () { // All events have finished, so we can run our code now }, 0);
Javascript中的计时器运行在同一个线程上,因此当其他Javascript代码运行时,计时器甚至不计数。将计时器设置为0时,当线程空闲时,计时器将运行。你提到的网站并没有在一定的时间间隔内更新这个列表--它实际上是在每次事件触发时使用所有这些对象上的处理程序来更新这个列表。
1条答案
按热度按时间c9qzyr3d1#
如果您只想在所有事件完成后运行一些代码,则应该使用值为0的超时:
Javascript中的计时器运行在同一个线程上,因此当其他Javascript代码运行时,计时器甚至不计数。将计时器设置为0时,当线程空闲时,计时器将运行。
你提到的网站并没有在一定的时间间隔内更新这个列表--它实际上是在每次事件触发时使用所有这些对象上的处理程序来更新这个列表。