0

我有一个独立的 Web 应用程序,它曾经可以在 iOS 6 上正常工作。

在 iOS 7 中,我注意到手指滑动后触发 javascript touchend 事件有明显的延迟(几秒钟)。行为不一致,有时第一次滑动会立即生成事件,只有后面的会延迟。

这是一个已知问题和/或有解决方法吗?

谢谢。

4

3 回答 3

1

我正在开发的 HTML5 游戏遇到同样的问题。有时 touchend 似乎会立即触发,而其他时候在触发之前会延迟几秒钟。

我偶然发现了这篇文章,它提醒我 setTimeout 0 将一个 javascript 块推送到队列中以供以后处理的技巧。我在 touchend 事件处理程序中做了一些“繁重的”(一些 DOM 操作),这似乎破坏了它的触发。

我用 setTimeout 将代码包装在我的 touchend 处理程序中,从而消除了延迟:

$(document).on('touchend', function (e) {
    setTimeout(function(){
        //do stuff here...
    }, 0);
});
于 2014-02-21T03:45:31.253 回答
0

iOS 7 和 HTML5 上的 Safari:问题、更改和新 API:http ://www.mobilexweb.com/blog/safari-ios7-html5-problems-apis-review

于 2013-09-21T16:39:12.987 回答
0

iOS 7.1 似乎解决了这个问题;touchend 事件正确触发(即使没有零超时)

于 2014-03-10T21:08:45.343 回答