0

我目前正在使用 phonegap 开发一个简单的 iOS/Android 应用程序。为了改善用户体验,该应用程序使用了许多快捷方式。(需要物理键盘)。为了处理快捷方式事件,我将 onkeypress 事件与 JQuery 一起使用,这在 Android 上运行良好。不幸的是,没有在 IOS 上触发任何事件。如果我将焦点设置为输入元素,则 onkeypress 侦听器将按预期工作。

我的问题:
如何在不将焦点设置到输入元素的情况下检测 iOS 上的关键事件?是否有任何插件或解决方法可以解决此问题?

更新

我尝试了一个正常的输入字段,一切都按预期工作。如果我将输入更改为隐藏的,则代码将不再起作用。

4

1 回答 1

0

我找到了解决我的问题的方法:

我添加了一个包含输入字段的 div,这个 div 的 z-index 为 -10,所以它不会出现

在选择其他输入字段之前,隐藏字段始终拥有焦点。新选择的输入字段获得模糊功能,以将焦点带回隐藏字段。

隐藏的领域

<div style="position:absolute;width:1px;heigth:1px;overflow:hidden">
        <input type="text" id="hiddencode" style="position:absolute;left:10px;top:10px;z-index:-1"/>
</div>

js部分

var blurFunction = function(e) {


     setTimeout(function(){
          console.log(document.activeElement); // This is the element that has focus
          if($(document.activeElement).is("input") || (document.activeElement).is("select")) {

             $(document.activeElement).blur(blurFunction);
         }
         else {
             $('#hiddencode').focus();
         }
         $('#hiddencode').val("");
     });
};
$('#hiddencode').focus();
于 2013-09-10T20:52:04.690 回答