我有一个独立的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/

10-10 20:42