javascript中的keycode和fromCharCode
我编写了以下代码(使用jQuery)来显示按下的键javascript中的keycode和fromCharCode,javascript,jquery,keyboard,Javascript,Jquery,Keyboard,我编写了以下代码(使用jQuery)来显示按下的键 $(window).keydown(function(e){ $("div").text("Key:" + String.fromCharCode(e.keyCode).toLowerCase()); return false; }); 此代码在正常字母表字符(q、w、e、r…)中工作。 但当我按非字母键(如“]”)时,会显示不正确的字符 例如:','->¼,']'->ý 我的代码有什么问题?使用按键事件和属性 jQuery规范化键代
$(window).keydown(function(e){
$("div").text("Key:" + String.fromCharCode(e.keyCode).toLowerCase());
return false;
});
此代码在正常字母表字符(q、w、e、r…)中工作。
但当我按非字母键(如“]”)时,会显示不正确的字符
例如:','->¼,']'->ý
我的代码有什么问题?使用
按键
事件和属性
jQuery规范化键代码,并将变量存储在事件中。keypress
事件的属性是String.fromCharCode
的唯一可靠值
event.keyCode
属性可能不等于event.charCode
或event.which
属性
对于不可打印的字符,event.which
的值为零,与event.keyCode
相反。这就是为什么你会看到奇怪的角色
$(window).keypress(function(e) {
var charCode = e.which;
if (!charCode) { // <-- charCode === 0
return;// return false, optionally
}
$("div").text("Key:" + String.fromCharCode(charCode).toLowerCase());
return false; // Or e.preventDefault(); and/or e.stopPropagation()
}).keyup(function(e) {
// Key is lifted, do something
});
$(窗口)。按键(功能(e){
var charCode=e.which;
如果(!charCode){/使用按键
事件和属性
jQuery规范化keycodes,并将变量存储在event.which
中。keypress
事件的which
属性是String.fromCharCode
的唯一可靠值
event.keyCode
属性可能不等于event.charCode
或event.which
属性
对于不可打印的字符,event.which
的值为零,与event.keyCode
相反。这就是为什么会看到奇怪的字符
$(window).keypress(function(e) {
var charCode = e.which;
if (!charCode) { // <-- charCode === 0
return;// return false, optionally
}
$("div").text("Key:" + String.fromCharCode(charCode).toLowerCase());
return false; // Or e.preventDefault(); and/or e.stopPropagation()
}).keyup(function(e) {
// Key is lifted, do something
});
$(窗口)。按键(功能(e){
var charCode=e.which;
如果(!charCode){//但我想知道键是否已按下,所以我必须使用keydown和keydup事件。@fishpotatokeypress
在keydown
事件后立即触发。您的代码的应用是什么?我正在编写合成器。我希望按键状态打开/关闭声音。@fishpotato比keypress
事件更适合很好,特别是因为您使用的是return false
(=e.preventDefault())。在这种情况下,
keydown`事件可以替换为keypress
事件。我将用一个演示更新我的答案。但是,当按键打开时,我如何关闭声音?我感谢您的回答。:)但我想知道键是否按下,所以我必须使用keydown和keydup事件。@fishpotatokeypress
在keydown
事件后立即触发。您的代码的应用是什么?我正在编写合成器。我想按键状态打开/关闭声音。@fishpotato比keypress
事件更适合嗯,特别是因为您使用的是return false
(=e.preventDefault())。在这种情况下,
keydown`事件可以替换为keypress
事件。我将用一个演示更新我的答案。但是,当钥匙打开时,我如何关闭声音?我感谢您的回答。:)