javascript - jQuery 的箭头键事件在 Firefox 以外的任何地方都不起作用

标签 javascript jquery jquery-events

我创建了一个作品集网站,在浏览图像时,我希望用户能够使用箭头键进行导航。我有以下代码,它在 Firefox 中运行良好,但在 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' });
    }
  });

我安装了 scrollTo 插件并且可以正常工作,还有一个有效的 jQuery 文件,所以这些都不是问题。谁能告诉我为什么这在其他浏览器中可能不起作用?

实例here .

帮助总是感激!

最佳答案

试试这个:

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

});

代替

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

});

这是因为 IE 处理 KeyPress 的方式与 FireFox 不同。

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

我还将您的语句更改为 switch:

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

关于javascript - jQuery 的箭头键事件在 Firefox 以外的任何地方都不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5081015/

相关文章:

javascript - 在 Express/Node 中使用 LIKE SQL 语句

javascript - 如何获取图像的高度并将其父高度设置为自动?

javascript - 如何通过 jquery 使用 div id 删除 div 内的特定 html 标签及其内容?

javascript - 处理 Orchestrate.io 查询的最佳模式

javascript - 如何识别 JSON 中的匿名类型?

javascript - 如何在按键事件后获得 jQuery .val()?

jquery - 如何为第三次点击分配 jQuery 点击事件?

javascript - 如何使用FormData进行AJAX文件上传?

javascript - 使用 JQuery 时数组不更新

javascript - 公认的防止事件处理程序循环的设计模式