按空格触发Javascript事件

时间:2011-06-01 09:30:40

标签: javascript jquery javascript-events

当我在页面上并按空格键时,我试图触发一个事件,但我无法理解。目前我正在尝试使用jQuery来实现令人满意的结果。

我尝试过使用keydown,keyup和keypress。但是,如果您实际上是在向表单或字段输入内容,那么您似乎只能使用它。

我想要的是在按下空格时触发警报。

提前谢谢!

4 个答案:

答案 0 :(得分:40)

这些事件冒出来,所以如果你试图在焦点所在的地方触发事件(即不在输入中),只需在window上绑定处理程序:

$(window).keypress(function (e) {
  if (e.key === ' ' || e.key === 'Spacebar') {
    // ' ' is standard, 'Spacebar' was used by IE9 and Firefox < 37
    e.preventDefault()
    console.log('Space pressed')
  }
})

另见the list of all .key values

答案 1 :(得分:6)

试试这个:

$('input:text').keypress(function(e) {
    if (e.keyCode == 0 || e.keyCode == 32) // `0` works in mozilla and `32` in other browsers
       console.log('space pressed');
});

答案 2 :(得分:4)

尝试将您的键事件侦听器绑定到jQuery $(document)对象;

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
  <head>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
    <script type="text/javascript">
      $(document).ready(function() {
        $(document).keydown(function(e) {
          if (e.keyCode == '32') {
            alert('space');
          }
        });
      });
    </script>
  </head>
  <body>
  </body>
</html>

答案 3 :(得分:3)

可以使用此代码:

$(window).keypress(function(e) {
  if (e.keyCode == 0 || e.keyCode == 32) {
    console.log('Space pressed');
  }
});


阐释:
$(window).keypress(function(e)等待用户按任意键并存储在参数中按下的键的数据&#39;。 然后if (e.keyCode == 0 || e.keyCode == 32)检查按下的键的代码是否等于空格键的代码,即0或32.如果返回false,则按下任何其他键并且代码结束。

一些常用的密钥代码:

  • 退格:8
  • 标签:9
  • 输入:13
  • 移:16
  • CTRL:17
  • ALT:18
  • 大写锁定:20
  • 逃逸:27
  • (空间):32
  • 0-9:48-57
  • A-Z:65-90
  • NUMPAD0-NUMPAD9:96-105