我正在尝试使用JavaScript (PHP内部)来识别keyDown事件-特别是箭头键。我已经通过各种线程在这里,以及其他来源,但还没有能够找到一个解决方案。我的代码看起来像:
echo '<script>
alert ("Hi");
$(document).keydown = (function(e) {
if (e.which == 37 || e.which == 38) {
alert("It works!");
}
if (e.which == 39 || e.which == 40) {
alert("It works, also!");
}
});
</script>';
第一个警报就在那里,所以我知道它甚至识别脚本,它是。然而,当我按下箭头键时,什么也没有发生。
用这个代替:
echo '<script>
alert ("Hi");
$( document ).on( "keydown", function ( e ) {
if ( e.which == 37 || e.which == 38 ) {
alert( "It works!" );
}
if ( e.which == 39 || e.which == 40 ) {
alert( "It works, also!" );
}
} );
</script>';
你所使用的代码将只是在对象上添加一个方法,这是由jquery返回的,实际上并没有添加侦听器:)
不能使用
添加事件处理程序$(document).keydown = ...
在jQuery 。
是
$(document).keydown( function (){} );
或
$(document).on("keydown", function (){} );
我做了这个小改动:
$(document).on("keydown", function(e) {
switch (e.which) {
case 37:
case 38:
alert("Go left or up!");
break;
case 39:
case 40:
alert("Go right or down!");
break;
}
});
希望有帮助