1

我尝试使用 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()了,但没有帮助。可以做些什么来防止浏览器的默认行为?

4

0 回答 0