0

我在我的网络应用程序中添加了快捷方式,但我想在输入不聚焦时停止它们......

$(function () {
    $(document).keypress(function (event) {
        var ch = String.fromCharCode(event.keyCode || event.charCode);
        switch (ch) {
            case 'p': case 'P':
                mainMenuRegulations();
                break;
            case 's': case 'S':
                mainMenuJurisprudence();
                break;
            case 'm': case 'M':
                mainMenuModels()
                break;
            case 'i': case 'I':
                showImprintContact();
                break;
}
});

});

4

1 回答 1

2

只需检查当前活动元素(焦点元素)是否是按键事件处理程序中的输入:

$(function () {
    $(document).on('keypress', function(event) {

        if (document.activeElement.tagName.toLowerCase() == 'input' ) {

            var ch = String.fromCharCode(event.which);

            switch (ch) {
                // your code here
            }
        }
    });
});

更具体地说,您还可以检查document.activeElement类型,并检查文本、数字或您正在使用的任何其他内容?

于 2013-06-28T16:40:27.077 回答