我目前正在开发一个需要标准桌面应用程序菜单栏的网络应用程序。我已经开始处理菜单栏并对布局进行排序。
不幸的是,客户端希望使用访问键(例如 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/