Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中的keycode和fromCharCode_Javascript_Jquery_Keyboard - Fatal编程技术网

javascript中的keycode和fromCharCode

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规范化键代

我编写了以下代码(使用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事件。@fishpotato
keypress
keydown
事件后立即触发。您的代码的应用是什么?我正在编写合成器。我希望按键状态打开/关闭声音。@fishpotato比
keypress
事件更适合很好,特别是因为您使用的是
return false
(=e.preventDefault()
)。在这种情况下,
keydown`事件可以替换为
keypress
事件。我将用一个演示更新我的答案。但是,当按键打开时,我如何关闭声音?我感谢您的回答。:)但我想知道键是否按下,所以我必须使用keydown和keydup事件。@fishpotato
keypress
keydown
事件后立即触发。您的代码的应用是什么?我正在编写合成器。我想按键状态打开/关闭声音。@fishpotato比
keypress
事件更适合嗯,特别是因为您使用的是
return false
(=e.preventDefault()
)。在这种情况下,
keydown`事件可以替换为
keypress
事件。我将用一个演示更新我的答案。但是,当钥匙打开时,我如何关闭声音?我感谢您的回答。:)