Eye*_*Eye 8 javascript jquery keycode
我在这里检查了其他问题,但他们没有回答我的问题.我想简单地捕获某些keyCode并将其替换为另一个.我正在处理角色,而不是白色空间,我不需要松散焦点等.
以下是我的代码.但是你可以用你的那些替换那些keyCodes(例如,当按下大写"A"时,它应该替换为零0等).想法是替换keyCode.
phrase.keypress(function(event)
{
if (event.shiftKey)
{
switch (event.keyCode)
{
// Cyrillic capitalized "?" was pressed
case 1053: event.keyCode = 1187; event.charCode = 1187; event.which = 1187; break;
// Cyrillic capitalized "?" was pressed
case 1054: event.keyCode = 1257; event.charCode = 1257; event.which = 1257; break;
// Cyrillic capitalized "?" was pressed
case 1059: event.keyCode = 1199; event.charCode = 1199; event.which = 1199; break;
}
}
});
Run Code Online (Sandbox Code Playgroud)
我也试过keydown和keyup.它们不会改变keyCode.我怎样才能做到这一点?
PS如果可能的话,我正在寻找一种解决方案,它不会"event.preventDefault()并手动将所需的键插入输入字段,然后将光标移动到末尾".我想要更清洁和"正确"的解决方案.谢谢.
虽然 KeyboardEvent 实例上的属性是只读的,但您可以覆盖KeyboardEvent
的原型并为您想要更改的任何内容创建 getter。下面是一个示例,它将 hjkl 的键码更改为箭头键。
Object.defineProperty(KeyboardEvent.prototype, 'keyCode', {
get: function() {
switch (this.key) {
case 'h': return 37; // left
case 'j': return 40; // down
case 'k': return 38; // up
case 'l': return 39; // right
default: return this.which
}
}
})
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
23662 次 |
最近记录: |