2010-03-01 82 views

回答

1

这对jquery来说很不错。

https://github.com/jeresig/jquery.hotkeys

+0

我已经下载了该文件并进行了检查。这是一个使用[jquery.hotkeys]的例子(https://github.com/jeresig/jquery.hotkeys) – 2012-10-01 13:48:57

+0

@NikolaPetkanski - 我更新了链接。 – 2012-10-01 14:28:58

+0

谢谢。我已经删除了我的-1分。 – 2012-10-01 15:54:02

1

大量的JavaScript库都充满了捕捉键盘输入,并用它来你的优势的途径。这是一个很好的选择,你将能够找到一个图书馆来做到这一点,没有别的。但是,我没有很多经验。

我一直在使用Ext一段时间,他们的KeyMap类真的很容易处理。这是一个使用它的简单例子。

new Ext.KeyMap(Ext.getDoc(), { 
     key: 'abc', 
     alt: true, 
     handler: function(k, e) { 
      var t = Ext.getCmp('tabpanel'); 
      switch(k) { 
       case 65: 
        t.setActiveTab(0); 
        break; 
       case 66: 
        t.setActiveTab(1); 
        break; 
       case 67: 
        t.setActiveTab(2); 
        break; 
      } 
     }, 
     stopEvent: true 
    }); 

这需要一流的,Ext.TabPanel,并允许用户按一个键盘键来更改标签,而不是点击标签本身。

它当然可以做得比这更多。这是它如何工作的简单例子。

9

尝试KeyboardJS

它的那样简单

KeyboardJS.on('a', function(){ alert('hello!'); }); 

又灵活,因为

var bindInstance = KeyboardJS.on('ctrl + a, ctrl + b, c', function(event, keysPressedArray, keyComboString){ 

    //you get the event object 
    console.log('event object', event); 

    //you get the keys pressed array 
    console.log('keys pressed', keysPressedArray); 

    //you get the key combo string 
    console.log('combo pressed', keyComboString); 

    console.log('I will fire when \'ctrl + a\' or \'ctrl +b\' or \'c\' is pressed down'); 

    //block event bubble 
    return false; 

}, function(event, keysPressedArray, keyComboString) { 

    console.log('I will fire on key up'); 

    //block event bubble 
    return false; 

}); 

您可以通过调用

bindInstance.clear(); 

可以清除所有与特定键结合与

KeyboardJS.clear('a, b'); 

其开源和可在Github清除结合。它来自全球库或RequireJS的AMD模块。

这里是introduction video

那里,现在不用担心键盘和代码您的应用程序。 ;)

+0

看起来像一个非常棒的脚本,但最好的我可以告诉它它不工作在IE8中,这对我来说可能是一个问题(在几个层面上)。当我使用IE8访问http://robertwhurst.github.com/KeyboardJS/时,它只是说“JS是必需的”。 – 2012-08-08 17:56:47

+0

该演示可能无法在IE中运行,但该库应该运行。它之前做了一对夫妇。你是否尝试过图书馆? – 2012-08-09 18:02:55

+0

我没有。我会试一试。有没有调整演示需要炫耀,可以处理所有的浏览器?我很乐意在演示页面上进行分叉和调整并发送拉取请求。 – 2012-08-09 18:13:06

29

只是另一个投入混合。我最近发布了一款名为Mousetrap的产品。您可以在http://craig.is/killing/mice

+0

感谢您分享! – 2012-10-01 15:53:14

+0

它很容易实现,像魅力一样工作。在商业项目中使用许可证的方式如何? – 2013-08-07 15:51:09

+2

它使用Apache 2.0许可证。 – Craig 2013-08-07 19:08:44

2

检查出的例子从我所看到的捕鼠器是,它可以让你指定键序列而不是组合的唯一库。这对我的应用非常方便。