我有一个独立的Web应用程序,该应用程序过去可以在iOS 6上正常工作。
在iOS 7上,我注意到在手指滑动后触发javascript touchend事件存在明显的延迟(几秒钟)。行为不一致,有时第一次滑动会立即生成事件,只有随后的事件才会延迟。
这是一个已知问题和/或解决方法?
谢谢。
最佳答案
我正在开发的HTML5游戏遇到了同样的问题。有时,触摸端似乎会立即触发,而有时触发点会延迟几秒钟。
我偶然发现this post让我想起了setTimeout 0技巧,该技巧将JavaScript块推入队列以进行后续处理。我在touchend事件处理程序中做了一些“繁重的工作”(某些DOM操作),这似乎破坏了它的触发。
我使用setTimeout将代码包装在touchend处理程序中,从而消除了延迟:
$(document).on('touchend', function (e) {
setTimeout(function(){
//do stuff here...
}, 0);
});
关于javascript - iOS 7全屏网络应用延迟触发javascript touchend,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18935002/