android - 简单触摸或点击时未选择输入

标签 android html cordova ember.js focus

我的 Cordova Ember 应用程序(在 Android 4.4.2 上运行)中的输入框在被触摸时没有获得焦点。在搜索路径中,由于没有其他元素(所有搜索结果都是链接),在输入框添加autofocus就可以了。

我正在处理登录页面。一共有三个输入框。无论我做什么(下面会详细介绍),这些框都不会聚焦在触摸上(桌面上没有问题,因为我只需单击输入框即可)。

如何解决?

这些是我尝试过的:

  1. 我在 SO 上读到一个问题,说这个问题在 Cordova 2.0 中得到了解决。我在 3.4.1 上,但不开心。
  2. 如果我将自动对焦添加到输入框,它就会起作用。但是当页面上有多个输入框时,就没有意义了。
  3. 我读到删除

    -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/

相关文章:

android - 我在 sdk 管理器中找不到 "Documentation for Android SDK"

android - 现有库可重现 Foursquare android 应用程序的放大 imageView 效果?

java - Android App因线程崩溃

ios - fatal error : 'assert.h' file not found when building an iOS app on PhoneGap 3. x

java - 如何创建一个始终运行的后台服务?

javascript - 页面加载时布局中断

html - 位置宽度 :absolute input tag not correct on iPad

javascript - 克隆行时清除隐藏输入

javascript - 如何在 Android 10 上使用 Cordova 创建文件夹?

javascript - 将 raphael js lib 包含到 android phonegap 应用程序中