我有一个独立的 Web 应用程序,它曾经可以在 iOS 6 上正常工作。
在 iOS 7 中,我注意到手指滑动后触发 javascript touchend 事件有明显的延迟(几秒钟)。行为不一致,有时第一次滑动会立即生成事件,只有后面的会延迟。
这是一个已知问题和/或有解决方法吗?
谢谢。
我有一个独立的 Web 应用程序,它曾经可以在 iOS 6 上正常工作。
在 iOS 7 中,我注意到手指滑动后触发 javascript touchend 事件有明显的延迟(几秒钟)。行为不一致,有时第一次滑动会立即生成事件,只有后面的会延迟。
这是一个已知问题和/或有解决方法吗?
谢谢。
我正在开发的 HTML5 游戏遇到同样的问题。有时 touchend 似乎会立即触发,而其他时候在触发之前会延迟几秒钟。
我偶然发现了这篇文章,它提醒我 setTimeout 0 将一个 javascript 块推送到队列中以供以后处理的技巧。我在 touchend 事件处理程序中做了一些“繁重的”(一些 DOM 操作),这似乎破坏了它的触发。
我用 setTimeout 将代码包装在我的 touchend 处理程序中,从而消除了延迟:
$(document).on('touchend', function (e) {
setTimeout(function(){
//do stuff here...
}, 0);
});
iOS 7 和 HTML5 上的 Safari:问题、更改和新 API:http ://www.mobilexweb.com/blog/safari-ios7-html5-problems-apis-review
iOS 7.1 似乎解决了这个问题;touchend 事件正确触发(即使没有零超时)