我尝试使用 jQuery 实现热键功能。目标是在按下 Ctrl + 'some letter' 时调用函数。这在使用时有效keypress()
,但keypress()
在 Chrome 和 IE 中无效。
keydown()
适用于主流浏览器,但在这种情况下,问题是 - 防止默认浏览器行为,即使用 Ctrl + N 时打开新窗口。我的代码是:
var ctrlDown = false;
jQuery(document).keydown(function (e) {
e.preventDefault();
if (e.ctrlKey) {
ctrlDown = true;
if (ctrlDown && e.which == 13) {
alert('ctrl + enter');
}
else if (ctrlDown && e.which == 78) {
alert('Ctrl + N');
}
} else {
ctrlDown = false;
}
});
我也试过stopPropagation()
了,但没有帮助。可以做些什么来防止浏览器的默认行为?