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

时间:2014-07-16 07:21:14

标签: 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;
    

    会解决问题。它没有。我也试过更换“没有”。用' text',' all'。

  4. 我发现可以通过短时间触摸输入来将焦点带入输入框。这会调出设备的复制(剪切,粘贴)界面。但由于这不是用户期望的,我寻求一个合适的解决方案。

    更新

    我刚刚发现三星Galaxy S2(Jellybean)没有问题。但是在我的Moto G(KitKat)中不起作用。这是KitKat的问题吗?

    解决

    正如@Trotpof回答的那样,问题正是由于fastclick.js。我把它删除了,一切都很完美。打开链接甚至没有任何明显的延迟。

    但是我想知道为什么相同的代码在Jellybean和Kitkat中的工作方式不同。

    以下是新Cordova应用程序中默认出现的[剩余] css(我删除了所有不必要的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' */
    }
    

1 个答案:

答案 0 :(得分:4)

几天前我也有同样的担忧。问题是fastclick.js脚本。 我对这个问题失去了很多时间,所以我决定不再进一步调查,只是不使用这个脚本。

我希望这有帮助!