javascript - 避免 300 毫秒的输入元素点击延迟触发键盘出现在 IOS 上

标签 javascript ios jquery-mobile backbone.js

目前我正在为 Android 和 IOS 开发网络应用程序(jQueryMobile on Backbone.js)。 为了提高性能,我试图消除这些设备上 300 毫秒的点击延迟。

对于那些不知道 300 毫秒延迟是什么的人,这里有一篇非常好的解释它的文章。

http://updates.html5rocks.com/2013/12/300ms-tap-delay-gone-away

对于 Android 设备,删除它真的很容易。

<meta name="viewport" content="width=device-width, user-scalable=no">

上面的元代码起到了作用。一旦 chrome 识别出用户在页面中放大/缩小不可用,300 毫秒的延迟就会消失。

但是IOS safari的情况下,不支持禁用。

所以我已经尝试了一些基于 touchstart - touchend 事件和触摸位置创建“无延迟点击事件”的插件。 我选择了 'vclick' 事件,它是 jQueryMobile 的无延迟点击原始事件。

除了事件处理程序更改 DOM 元素并且不知何故 input 在我单击的位置出现,OS 键盘也出现的情况下,它工作得很好。

那是因为键盘出现是基于“正常”点击事件,在没有延迟点击事件后有 300 毫秒的延迟。并且由于我在没有延迟点击事件时移动元素,在“正常”点击事件发生时,原始点击元素不存在,只有 input 元素。

我的问题是如何消除键盘出现事件的 300 毫秒延迟?

这里是简单的可重现代码

http://jsfiddle.net/Suish/gypbn304/1/

任何建议或帮助将不胜感激。

最佳答案

https://github.com/ftlabs/fastclick

fastclick.js

window.addEventListener('load', function() {
    var fastClick = new FastClick(document.body);
}, false);

关于javascript - 避免 300 毫秒的输入元素点击延迟触发键盘出现在 IOS 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29272901/

相关文章:

javascript - 基础 JS + WebDev 帮助

javascript - React Native SafeAreaView 背景颜色 - 如何为屏幕顶部和底部分配两种不同的背景颜色?

ios - 使用 Storyboard 而不是 Nib 时如何解决此问题? : Getting “this class is not key value coding-compliant"?

javascript - 设置秒表定时器的格式

javascript - 同一元素上的 jQuery 绑定(bind)

jquery mobile动态注入(inject)页面

javascript - Node.js 播放声音 : TypeError: Cannot read property 'play' of undefined

javascript - React 重新渲染 - 误解

ios - "Use of unresolved indentifier ' 自身 '"带按钮.addTarget

ios - 自动收缩标签,但为所有其他 UITableViewCell 保持相同的字体大小