我尝试使用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()
,但没有用。可以采取哪些措施来防止浏览器的默认行为?