【发布时间】:2011-01-22 03:27:15
【问题描述】:
我想制作一个使用键盘事件的 bbs 论坛,
那么哪个是最好的键盘事件库,
谢谢
【问题讨论】:
-
“最佳”是一个难以匹配的标准。您可以尝试提供有关您要完成的工作的更多详细信息。这样,我们可以更具体。
标签: javascript javascript-events
我想制作一个使用键盘事件的 bbs 论坛,
那么哪个是最好的键盘事件库,
谢谢
【问题讨论】:
标签: javascript javascript-events
只是另一个混音。我最近发布了一款名为 Mousetrap 的产品。你可以在http://craig.is/killing/mice查看示例
【讨论】:
就这么简单
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 模块中。
好了,现在不用再担心键盘了,为您的应用编写代码吧。 ;)
【讨论】:
div 和 contenteditable="true")。谢谢@RobertHurst!
KEYPRESS 专注于游戏输入,支持任意键作为修饰符,以及其他功能。也是pre-packaged for Meteor。
【讨论】:
据我所知,Mousetrap 是唯一可以让您指定键序列而不是组合的库。这对我的应用程序非常方便。
【讨论】:
许多 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 类,并允许用户按下键盘键来更改选项卡,而不是单击选项卡本身。
当然,它可以做的远不止这些。这是一个简单的例子来说明它是如何工作的。
【讨论】:
这个对于jquery来说还是不错的。
【讨论】:
如果您刚开始并且想了解热键的工作原理,这个会更好。
https://github.com/UthaiahBollera/HotkeysInJavascriptLibrary
【讨论】:
你可以试试这个……
【讨论】: