用箭头键识别JavaScript中的keydown()


Recognizing keydown() in JavaScript with Arrow Keys

我正在尝试使用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;
    }
});

希望有帮助