4

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

目标是允许用户按左右箭头来获取下一个图像。他们无需单击任何文本字段或任何内容...只需按这些键即可滚动到下一个或最后一个图像。

像:

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
  }
 }

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

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

  run some code
} }); 

有任何想法吗?

编辑:

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

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

谢谢

4

6 回答 6

6
$(document).ready(function() {
    $(document).keydown(function(e) {   
      e.preventDefault();  
      if (e.which == 13) {
          // Whatever...
      }
    });
}); 
于 2012-10-10T20:46:12.143 回答
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');
    }
});

小提琴

于 2012-10-10T20:54:52.027 回答
3

将按键(或按下或按下)绑定到正文、文档或窗口。使用其中的任何一个或全部(皮带+吊带)。

$('body',document,window).on('keyup', function(e) {
    if (e.which == 13) {
        e.preventDefault();
        console.log('enter');
    }
});​
于 2012-10-10T20:45:44.413 回答
2

将侦听器添加到文档中。

$(document).on("keyup", function (e) {
    console.log(e.keyCode);
});​
于 2012-10-10T20:43:38.753 回答
2

使用$(document).on()$(window).on()

于 2012-10-10T20:44:26.880 回答
2

首先,我认为按键更安全。我听说 keyup 和 keydown 在某些浏览器中会丢失。

我倒过来了... keydown 是最安全的。

您的问题的答案是绑定文档:

$(document).on('keydown', function(){
  ...
});
于 2012-10-10T20:52:06.850 回答