【问题标题】:Browser independent keycode handling with jQuery使用 jQuery 处理独立于浏览器的键码
【发布时间】:2012-06-19 08:40:45
【问题描述】:

jQuery 是否支持为独立编程翻译依赖于浏览器的键码?我有一些这样的代码

$("#container").delegate("input", "keyup", function(event){
    if(event.which == 107){
        event.preventDefault();
        addSomething();         
    }
});

当按下+ 时,应该将一些新元素附加到我的$(document)。显然,这在 Chrome 中不起作用,因为 Chrome 的+ 的键码恰好是 187。我想,这应该是一个常见的问题,并且推测,有一种方法可以使用与 event 不同的信息已经独立于浏览器了吗?我发现,shift-key 有一个way。但这是否适用于所有键,这是否被证明适用于每个浏览器?我想到了类似的东西

...
if(event.+){ //or maybe if(event.plus){
...

【问题讨论】:

  • event.which for the + 在我所有的浏览器(Chrome、Opera、Firefox 和 Safari)中都是 43,它与 + 字符的 ASCII 码匹配。
  • 我使用的德语键盘看起来像this。可能是我面临更大的问题..
  • 检查event.charCodeevent.keyCode 中的值是否不同。显然,187 将是“右双角引号”(»),即使您的键盘布局看起来也不正确。
  • 哦,你是对的!我的 keypress 事件也是 43,但我的 keyup 事件在 Chrome 中是 187!

标签: jquery cross-browser jquery-events


【解决方案1】:

https://github.com/jeresig/jquery.hotkeys/blob/master/jquery.hotkeys.js ,作者是 Tzury Bar Yochay 和 John Resig。这几乎可以处理任何按键[向下/向上/按下]的情况。

【讨论】:

    猜你喜欢
    • 2011-05-31
    • 1970-01-01
    • 1970-01-01
    • 2012-05-05
    • 2018-05-13
    • 2013-02-02
    • 1970-01-01
    • 1970-01-01
    • 2010-09-23
    相关资源
    最近更新 更多