按空格触发Javascript事件

Hen*_*gmo 25 javascript jquery javascript-events

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

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

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

先感谢您!

Fél*_*lli 41

这些事件会冒出来,所以如果你试图在焦点所在的地方触发事件(即不在输入中),只需绑定一个处理程序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')
  }
})
Run Code Online (Sandbox Code Playgroud)

另请参阅所有.key值的列表.


the*_*dox 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');
});
Run Code Online (Sandbox Code Playgroud)


Kar*_*Øie 5

尝试将您的按键事件侦听器绑定到 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>
Run Code Online (Sandbox Code Playgroud)


DJ1*_*J18 5

可以使用此代码:

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


释:
$(window).keypress(function(e)等待用户按下任何键和存储密钥的数据在参数“e”的按压。
然后if (e.keyCode == 0 || e.keyCode == 32)检查按下的键的代码是否等于空格键的代码,即 0 或 32。如果返回 false,则按下任何其他键,代码结束。

一些常用的键码:

  • 退格:8
  • 标签:9
  • 输入:13
  • 班次:16
  • 控制:17
  • 替代:18
  • 大写锁定:20
  • 逃脱:27
  • (空格):32
  • 0-9:48-57
  • AZ:65-90
  • 小键盘0-小键盘9:96-105