我想创建一个使用很多键盘事件的bbs论坛,
哪个是最好的键盘事件库,
感谢
答案 0 :(得分:34)
另一个投入混合。我最近发布了一个名为Mousetrap的产品。您可以在http://craig.is/killing/mice
查看示例答案 1 :(得分:12)
就像
一样简单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。
在那里,现在不再担心键盘和代码你的应用程序。 ;)
答案 2 :(得分:2)
据我所知,Mousetrap是唯一允许您指定关键序列而不是组合的库。这对我的申请来说非常方便。
答案 3 :(得分:2)
KEYPRESS专注于游戏输入,并支持任何键作为修饰符,以及其他功能。它也是pre-packaged for Meteor。
答案 4 :(得分:1)
这个对于jquery非常好。
答案 5 :(得分: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,并允许用户按键盘键来更改标签,而不是单击标签本身。
当然,它可以做的远不止这些。这是一个如何工作的简单例子。
答案 6 :(得分:-1)
如果您正在开始并且想要了解热键的工作方式,那么这个更好。
https://github.com/UthaiahBollera/HotkeysInJavascriptLibrary
答案 7 :(得分:-2)
你可以试试这个......