【发布时间】:2013-01-11 11:12:44
【问题描述】:
这是我的代码:
$button.on('keyup', function (event) {
// Detect an Enter keypress
if(event.keyCode === 13) {
doStuff();
}
});
如您所见,键码13 是硬编码的。是否有一种(跨浏览器)方法可以以更语义化的方式提取该数字?
【问题讨论】:
-
如果有比 ASCII 十进制代码更语义化和更简洁的东西,我从未见过。当然,您可以制作一张地图
var keys = { enter: 13 }并通过event.code === keys.enter进行搜索,但我个人更喜欢查看实际的键码来确定脚本在做什么,而无需查找对象的定义。不,据我所知,Enter 键不存在跨浏览器/平台问题。 -
只需定义一个对象,其键码为值,键名作为键。没有内置的枚举。
-
"\r".charCodeAt(0)或 stackoverflow.com/questions/1465374/… -
尽管我最初发表了评论,但当您使用许多键进行操作时,键映射可能很有用,例如映射所有箭头键比为每个箭头键写一个数字更具语义。
=] -
@AlexK。无需按照 OP 要求对其进行硬编码即可获得回车键码的非常聪明的技巧,可能是 imo 的答案。
=]
标签: javascript keycode