用于从代码中按键盘键的jQuery库
我在将按键代码转换为键盘键的功能上遇到了一些问题。我最初有一个巨大的switch语句,如果代码是37,我的程序将输出“左箭头键”。我的问题是,不同的浏览器没有触发某些按键,有时代码会混淆。例如,运行Chrome的mac上的shift+7输出代码37,这是一个左箭头键。mac上的Firefox没有告诉我是否按下了tab键,等等 以下是我使用的代码:用于从代码中按键盘键的jQuery库,jquery,keypress,Jquery,Keypress,我在将按键代码转换为键盘键的功能上遇到了一些问题。我最初有一个巨大的switch语句,如果代码是37,我的程序将输出“左箭头键”。我的问题是,不同的浏览器没有触发某些按键,有时代码会混淆。例如,运行Chrome的mac上的shift+7输出代码37,这是一个左箭头键。mac上的Firefox没有告诉我是否按下了tab键,等等 以下是我使用的代码: function getKey(code) { var keyPress; // In case of special
function getKey(code) {
var keyPress;
// In case of special keys
switch (code)
{
case 8:
keyPress = " backspace ";
break;
case 9:
keyPress = " tab ";
break;
case 13:
keyPress = " enter ";
break;
case 16:
keyPress = " shift ";
break;
case 17:
keyPress = " control ";
break;
case 18:
keyPress = " alt ";
break;
case 20:
keyPress = " caps lock ";
break;
case 27:
keyPress = " escape ";
break;
case 46:
keyPress = " delete ";
break;
case 37:
keyPress = " left arrow key ";
break;
case 38:
keyPress = " up arrow key ";
break;
case 39:
keyPress = " right arrow key ";
break;
case 40:
keyPress = " down arrow key ";
break;
case 45:
keyPress = " insert ";
break;
case 46:
keyPress = " delete ";
break;
case 91:
keyPress = " command ";
break;
default:
keyPress = String.fromCharCode(code);
}
return keyPress;
}
$(document).keypress(function(e) {
var code = e.which;
var keyPress = String.fromCharCode(code);
$(".keystrokes").append(keyPress);
});
那么,有没有用于jquery的库可以准确地为我提供正确按下的键?我不知道有哪一个库可以满足您的要求,但是开关可以处理正确的数据 keypress()返回实际的文本条目。keyup()返回键代码。您需要检查event.where来获取键,event.shiftKey,event.metaKey,event.ctrlKey来获取修饰符 从
要确定按下了哪个键,请检查传递给处理程序函数的事件对象。虽然浏览器使用不同的属性来存储此信息,但jQuery规范化了.which属性,以便您可以可靠地使用它来检索密钥代码。此代码对应于键盘上的键,包括箭头等特殊键的代码。为了捕获实际的文本输入,.keypress()可能是更好的选择。您正在寻找jQuery++的
事件。key
扩展名:
您可以像下面这样:
$( <query> ).on('keypress', function(ev){
// Backspace
if(ev.keyName() == '\b') {
...
}
);
$()。开启('keypress',功能(ev){
//退格
如果(ev.keyName()='\b'){
...
}
);
- 选项卡键:
\t
- 输入键:
\r
- Shift键:
Shift
查看注释来源了解更多信息:不。我不想听特定的按键,我想每次按下一个键时,都能知道按下了哪个键。我一定错过了什么,因为这些听起来完全一样。或者至少,你可以使用其中的一些库来做你喜欢做的事情,而不是拥有一堆控制权好吧,如果我是正确的,那么这些库让你绑定一个事件,并检查是否按下了特定的键。它们是否只是让任何键被按下,而不是监听特定的键?我现在明白了。检查:你正在寻找
jwerty.is()