当我在页面上并按空格键时,我试图触发一个事件,但我无法理解。目前我正在尝试使用jQuery来实现令人满意的结果。
我尝试过使用keydown,keyup和keypress。但是,如果您实际上是在向表单或字段输入内容,那么您似乎只能使用它。
我想要的是在按下空格时触发警报。
提前谢谢!
答案 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')
}
})
答案 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,则按下任何其他键并且代码结束。
一些常用的密钥代码: