jQuery的哪个转义键的键代码

我有两个功能。当按下回车键时,功能正常运行,但是当按下退出键时,功能无法正常运行。退出键的正确数字是多少?

$(document).keypress(function(e) { 
    if (e.which == 13) $('.save').click();   // enter (works as expected)
    if (e.which == 27) $('.cancel').click(); // esc   (does not work)
});
猴子西门2020/03/12 14:49:00

我知道这个问题是关于jquery的,但是对于那些使用jqueryui的人来说,许多键码都有常量:

$.ui.keyCode.ESCAPE

http://api.jqueryui.com/jQuery.ui.keyCode/

米亚猴子2020/03/12 14:49:00

要获取所有字符的十六进制代码:http : //asciitable.com/

逆天2020/03/12 14:49:00

我一直使用keyup和e。哪个可以捕获转义密钥。

斯丁阳光2020/03/12 14:49:00

解释没有其他答案的地方;问题是您使用keypress

也许事件只是被错误命名,但keypress被定义为在时触发即文字。 而您想要的是/ ,它会在任何时候(分别在之前或之后)触发即键盘上的那些东西。when an actualcharacteris being inserted
keydownkeyupthe user depresses akey

之所以出现差异,esc因为它是控制字符(字面上是“非打印字符”),因此不会写任何文本,因此甚至不会触发keypress
enter很奇怪,因为即使您将其用作控制字符(即,用于控制UI),它仍在插入换行字符,这将触发keypress

资料来源:quirksmode

猪猪卡卡西西里2020/03/12 14:49:00

27是转义键的代码。:)

2020/03/12 14:49:00

要查找任何键的键码,请使用以下简单功能:

document.onkeydown = function(evt) {
    console.log(evt.keyCode);
}