【问题标题】:Jquery detect if keyboard key is held downJquery检测键盘键是否被按住
【发布时间】:2012-04-04 23:39:34
【问题描述】:

我正在使用 PhoneGap 制作填字游戏应用程序,并且需要检测用户是否刚刚快速按下键盘或按住某个键以获取特殊字符。检测到这一点会是什么事件?

编辑:当我按下按钮并且不释放它时,在我释放键之前触发 keyup。 iPhone没有这个问题,SDK 8版本的模拟器也没有这个问题。 HTC Desire S 和可能的其他 HTC 手机可能具有此“功能”。对我来说看起来像是一个错误。

【问题讨论】:

    标签: jquery android cordova keyboard


    【解决方案1】:

    如果您想随时知道按下了哪些键,请尝试以下操作:

    var keys = array();
    $(windows).keydown(function(e){
        keys[e.which] = true;
    }
    $(windows).keyup(function(e){
        keys[e.which] = false;
    }
    

    如果您只想在用户按下某个键一段时间后触发操作,只需设置一个超时,如果在所需时间之前触发 keyup,您可以取消该超时。

    【讨论】:

    • 这已经过时了,但对于其他任何偶然发现这个答案的人来说,你最好使用var keys = []; 而不是var keys = Array();array() 甚至不起作用)。更好的是var keys = {};,因为将元素添加到具有无序索引的数组通常是一个非常糟糕的主意。
    【解决方案2】:

    也许看看是否有不同的键码通过

    $('#input').live('keypress',function(e){
       console.log('keypress: '+e.keyCode);
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-10
      • 2015-10-18
      • 2021-07-14
      • 2022-01-01
      相关资源
      最近更新 更多