如何在Chrome中触发箭头按键?

时间:2015-03-24 10:35:45

标签: javascript jquery google-chrome

在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;
&#13;
&#13;

如何捕捉箭头按键?

4 个答案:

答案 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')
});

Fiddle

答案 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>