在chrome(windows)中,我可以捕获字符上的按键,但不能捕获箭头键上的按键。请参阅下面的示例代码:
$('body').on('keypress', function(e) {
console.log('Only works on charcters, in chrome')
})

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
如何捕捉箭头按键?
答案 0 :(得分:2)
尝试将keypress
更改为keyup
:
$('body').on('keyup', function(e) {
console.log('Works on everything :)')
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
答案 1 :(得分:1)
我认为keydown
工作正常
$('body').on('keydown', function(e) {
console.log('Only works on charcters, in chrome')
});
答案 2 :(得分:1)
我非常喜欢这个模块用于按键触发:
https://github.com/madrobby/keymaster
它确实减少了使用按键时需要写入的样板代码量。
// define short of 'down'
key('down', function(){ alert('you pressed down') });
答案 3 :(得分:1)
如何捕捉箭头按键?
使用e.keyCode
检测按下了哪个键。
像这样:
$('body').on('keyup', function(e) {
if (e.keyCode == '38') {
alert("up arrow");
}
else if (e.keyCode == '40') {
alert("down arrow");
}
else if (e.keyCode == '37') {
alert("left arrow");
}
else if (e.keyCode == '39') {
alert("right arrow");
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>