jQuery $(document).keydown() 问题

标签 jquery google-chrome

我目前正在开发一个需要标准桌面应用程序菜单栏的网络应用程序。我已经开始处理菜单栏并对布局进行排序。

不幸的是,客户端希望使用访问键(例如 Alt+F)加载"file"菜单。当按下 Alt 键时,我想显示访问键。我目前有以下 jQuery 代码来处理这个问题:

$(document).ready(function() {
    $(this).keydown(function(e) {
        if(e.keyCode == 18) { alt_shifter = true; $('.access_key').css({ textDecoration: 'underline' }); }
    });

    $(this).keyup(function(e) {
        if(e.keyCode == 18) { alt_shifter = false; $('.access_key').css({ textDecoration: 'none' }); }
    });
});

不幸的是,正如您在 jsFiddle 上看到的那样,由于 Google Chrome 中的某种原因,当按 Alt 时,按键会带有下划线,然后在 keyup 上标准化。但是,再次按 Alt 不会执行任何操作,直到下次按下它为止。几乎就像一旦下划线完成并且keyup被触发,它就不会注册keyup,直到再次按下它。

这是 jsFiddle 演示 > http://jsfiddle.net/Ht2wD/

如有任何帮助,我们将不胜感激!

最佳答案

我修改了代码,在 keyCode 检查之前包含 e.preventDefault(); ,它似乎有效。这是帮助我找到答案的网站 http://unixpapa.com/js/key.html

关于jQuery $(document).keydown() 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7445151/

相关文章:

python - 如何使用 python selenium 包打开 chrome webdriver,登录默认用户?

打开控制台后 CSS 在 Chrome 中停止工作

javascript - 在 Chrome 中创建多个 webgl 纹理

forms - Chrome : Fill out same form many times for testing

jquery - 上传图像时从浏览窗口选择图像后自动提交表单

javascript - Jquery自动完成从第一个字符开始

jquery - 动态更改值时,选择时的默认选定值不可见

javascript - 如何观察javascript执行

jquery - 如何在进行表单编辑时使用 jqGrid 的 afterSubmit

javascript - 使用 jQuery 计算生成的输入整数值