使用jQuery的箭头键事件不能在FF以外的任何其他工作!

Dan*_*anC 1 javascript jquery javascript-events

我创建了一个投资组合网站,在浏览图像时,我希望用户能够使用箭头键进行导航.我有以下代码在FF中工作正常,但不适用于Chrome,Safari或IE.

        $(document).keypress(function (evt) {
            if (evt.keyCode == 39) { 
              evt.preventDefault(); 
              $.scrollTo('+=564px', 800, { axis:'x' }); 
            } else if (evt.keyCode == 37) { 
              evt.preventDefault();
              $.scrollTo('-=564px', 800, { axis:'x' });
            }
  });
Run Code Online (Sandbox Code Playgroud)

我安装了scrollTo插件并且工作以及有效的jQuery文件,所以这不是问题.任何人都可以告诉我为什么这可能在其他浏览器中不起作用?

这里有实例

帮助永远赞赏!

Bar*_*der 6

试试这个:

$(document).bind('keydown',function(evt) {

});
Run Code Online (Sandbox Code Playgroud)

代替

$(document).keypress(function(evt) {

});
Run Code Online (Sandbox Code Playgroud)

这是因为IE以不同的方式处理KeyPress到FireFox.

编辑,因为你很高兴得到一个体面的答案:

我也会将你的陈述改为switch:

$(document).bind('keydown',function(evt) {
        switch(evt.keyCode) {
        case 65:
                    alert("you pressed key 65");
                    break;
                }
});
Run Code Online (Sandbox Code Playgroud)