jQuery:使用热键时,preventDefault()和stopPropagation()对keydown不起作用

时间:2013-05-27 16:31:16

标签: jquery keydown preventdefault stoppropagation

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

0 个答案:

没有答案