用户滚动后为什么不会在touchend处理程序中触发setTimeout(iOS Safari)

时间:2013-09-05 17:43:47

标签: javascript ios safari

由于某些原因,如果用户在触发touchend事件之前滚动,则setTimeout将不会在touchend事件处理程序中触发。如果用户未滚动,则setTimeout将按预期触发。这似乎是iOS 6.0版的一个问题,在6.1版本中可能不是问题。

在iOS设备/模拟器上打开此链接以查看示例:

按页面上的任意位置,不滚动并释放。该页面将按原样变为绿色。

然后,按页面上的任意位置,滚动和释放,页面将不会变为绿色。

http://jsbin.com/aWamaHu/8

打开此链接以查看代码

http://jsbin.com/aWamaHu/8/edit

1 个答案:

答案 0 :(得分:1)

我找到了答案。显然,在iOS 6及以下版本中,当用户滚动时,所有javascript都会暂停。

有关详细信息,请参阅此处:

iOS 6 js events function not called if has setTimeout in it