【发布时间】:2013-07-17 17:58:17
【问题描述】:
我的功能将键码转换为键盘键时遇到了一些问题。我最初有一个巨大的 switch 语句,如果代码是 37,我的程序将输出“左箭头键”。我的问题是,不同的浏览器不会触发某些按键,有时代码会混淆。例如,在运行 Chrome 的 Mac 上 shift + 7 会输出代码 37,即向左箭头键。 mac 上的 Firefox 不会告诉我是否按下了 tab 键等。
这是我正在使用的代码:
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 库可以准确地给我正确按下的键?
【问题讨论】:
-
没有。我不想听一个特定的按键,我想,每次按下一个键时,都知道按下了哪个键。
-
我一定遗漏了一些东西,因为这些听起来完全一样。或者至少,您可以使用其中一些库来做您喜欢的事情,而不是拥有一堆控制流。
-
好吧,如果我是正确的,那些库让您绑定一个事件并检查是否按下了该特定键。他们是否只是为了得到按下的任何键而不是监听特定的键?
-
我现在明白了。查看:keithcirkel.co.uk/jwerty您正在寻找
jwerty.is()