JavaScript:避免使用硬编码的密钥代码

Ran*_*lue 4 javascript keycode

可能重复:
JavaScript event.keyCode常量

这是我的代码:

$button.on('keyup', function (event) {
    // Detect an Enter keypress
    if(event.keyCode === 13) {
        doStuff();
    }
});
Run Code Online (Sandbox Code Playgroud)

如您所见,键码13是硬编码的.是否有(跨浏览器)方式以更具语义意义的方式删除该数字?

Vis*_*ioN 9

如果您使用jQueryUI,您可以使用$.ui.keyCode常量:

keyCode: {
    BACKSPACE: 8,
    COMMA: 188,
    DELETE: 46,
    DOWN: 40,
    END: 35,
    ENTER: 13,
    ESCAPE: 27,
    HOME: 36,
    LEFT: 37,
    NUMPAD_ADD: 107,
    NUMPAD_DECIMAL: 110,
    NUMPAD_DIVIDE: 111,
    NUMPAD_ENTER: 108,
    NUMPAD_MULTIPLY: 106,
    NUMPAD_SUBTRACT: 109,
    PAGE_DOWN: 34,
    PAGE_UP: 33,
    PERIOD: 190,
    RIGHT: 39,
    SPACE: 32,
    TAB: 9,
    UP: 38
}
Run Code Online (Sandbox Code Playgroud)

所以为了检查Enter按下使用:

if (event.keyCode === $.ui.keyCode.ENTER) { ... }
Run Code Online (Sandbox Code Playgroud)


Ran*_*lue 2

重复一下Alex K.答案(我用过):

"\r".charCodeAt(0)
Run Code Online (Sandbox Code Playgroud)