我的 Cordova Ember 应用程序(在 Android 4.4.2 上运行)中的输入框在被触摸时没有获得焦点。在搜索路径中,由于没有其他元素(所有搜索结果都是链接),在输入框添加autofocus
就可以了。
我正在处理登录页面。一共有三个输入框。无论我做什么(下面会详细介绍),这些框都不会聚焦在触摸上(桌面上没有问题,因为我只需单击输入框即可)。
如何解决?
这些是我尝试过的:
- 我在 SO 上读到一个问题,说这个问题在
Cordova 2.0
中得到了解决。我在 3.4.1 上,但不开心。 - 如果我将自动对焦添加到输入框,它就会起作用。但是当页面上有多个输入框时,就没有意义了。
我读到删除
-webkit-user-select: none;
可以解决问题。它没有。我还尝试将“无”替换为“文本”、“全部”。
我发现可以通过在输入上短时间按住触摸来将焦点带入输入框。这将调出设备的复制(剪切、粘贴)界面。但由于这不是用户所期望的,因此我寻求合适的解决方案。
更新
我刚刚发现 Samsung Galaxy S2 (Jellybean) 没有问题。但在我的 Moto G (KitKat) 中不起作用。这是 KitKat 的问题吗?
已解决
正如@Trotpof 回答的那样,问题正是由于 fastclick.js
引起的。我将其删除,一切正常。打开链接时甚至没有任何明显的延迟。
但是我想知道为什么相同的代码在 Jellybean 和 Kitkat 中的工作方式不同。
这是默认情况下出现在新 Cordova 应用程序中的[剩余] css(我删除了所有不必要的):
*{
-webkit-tap-highlight-color: rgba(0,0,0,0); /* make transparent link selection, adjust last value opacity 0 to 1.0 */
}
body{
-webkit-touch-callout: none; /* prevent callout to copy image, etc when tap to hold */
-webkit-text-size-adjust: none; /* prevent webkit from resizing text to fit */
-webkit-user-select: none; /* prevent copy paste, to allow, change 'none' to 'text' */
}
最佳答案
几天前我也有同样的担忧。问题是 fastclick.js 脚本。 这个问题让我浪费了太多时间,所以我决定不再进一步调查,只是不使用这个脚本。
希望对您有所帮助!
关于android - 简单触摸或点击时未选择输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24774561/