Javascript或Jquery:获取没有焦点的关键输入

Gro*_*ler 4 javascript php jquery

我正在尝试检查按键是否按下而不关注任何类型的字段.

目标是允许用户按左箭头和右箭头以进入下一个图像.他们没有必要点击任何文本字段或任何东西......只需按这些键滚动到下一个或最后一个图像.

喜欢:

function keyEvent(e) {
  if(e.keyCode == 39) {
    run some code to get next image
  }
  else if (e.keyCode == 37) {
    run some code to get last image
  }
 }
Run Code Online (Sandbox Code Playgroud)

似乎jquery总是需要一个"选择器",好像我需要将它绑定到一个字段或其他东西.

$('input[type=text]').on('keyup', function(e) {     
  if (e.which == 39) {

  run some code
} }); 
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

编辑:

我的viewimage.php文件正文中有这个脚本... javascript仍未在页面加载时运行:

<script type="text/javascript">
$(document).ready(function() { 
    $(document).keydown(function (e) {
     if (e.which == 39) {
       alert("39");
    }
    });
});
</script>
Run Code Online (Sandbox Code Playgroud)

谢谢

cas*_*.io 5

$(document).ready(function() {
    $(document).keydown(function(e) {   
      e.preventDefault();  
      if (e.which == 13) {
          // Whatever...
      }
    });
}); 
Run Code Online (Sandbox Code Playgroud)

  • 它在$(document).ready(function(){})中; ? (2认同)
  • 检查jQuery是否正确包含在脚本之上. (2认同)

Fab*_*tté 5

我正在尝试检查是否按下了某个键而没有关注任何类型的字段。

如果field您指的是 input/textearea/select 元素,那么您所要做的就是将处理程序附加到文档,如果事件目标是输入元素,则取消上述处理程序:

$(document).on('keyup', function(e) {
    if ($(e.target).is('input, textarea, select')) return;
    if (e.which == 39) {
        console.log('move foward');
    }
});
Run Code Online (Sandbox Code Playgroud)

小提琴