我正在尝试获取访问者何时左右使用键的响应
<script>
$(document).keypress(function(event) {
key = String.fromCharCode(event.which)
if(key == '37' || key == '39') {
$('main').html('You pressed : ' + key)
event.preventDefault()
}
});
</script>
它不起作用。什么工作是行
if(key == 'a')
我使用此表来查找代码https://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes
是因为jQuery有不同的表吗?或者我也应该加载JavaScript?那么我该如何使用它们中的两个呢? (jQuery和JavaScript?)?
提前致谢
编辑:
我想我明白了
String.fromCharCode(event.which)
JavaScirpt无法读取字符串作为数字?我需要使用不同的功能吗?我是新手,你可以告诉我该怎么做吗?
答案 0 :(得分:0)
我自己发现当我去实现这些“从事件中获取项目”时,一个简单的console.log(event)
会产生奇迹。我先从:
$('body').on('keypress', function(evt){
console.log('Event: ', evt);
});
然后,按向右和向左箭头键,看看会发生什么。
首先,观察:我注意到您正在比较字符串'37'
,它与整数值37
不同。前者是两个或四个字节(取决于JS实现如何存储字符),而后者是一个字节。在阅读适当的API之后,这是您的意图吗?
其次,作为一个具体的建议,如果您正在使用jQuery,请利用它的规范化例程。在这种情况下,event.which
返回0,但您可以使用event.keyCode
,这可能是您要比较的内容:
if ( 37 === event.keyCode ) {
// ...
}
else if ( 39 === event.keyCode ) {
// ....
}
答案 1 :(得分:0)
您要使用的是keydown
事件。另外,没有理由使用String.fromCharCode
,你可以只比较整数。像这样的东西会起作用
$(document).keydown(function(event) {
if (event.which == 37 || event.which == 39) {
var key = event.which == 37 ? 'left' : 'right';
$('main').html('You pressed : ' + key)
event.preventDefault()
}
})