0

我有工作代码来捕捉和处理下面的按键

$(document).keydown(function (e) {
    if ( event.keyCode == 84 ) {
        $('svg > g > g').toggle();
    }
    else if ( event.keyCode == 90 ) {
        $('.zones').toggle();
    }
    else if ( event.keyCode == 70 ) {
        fit($('svg > g'));
    }
    else {
        var x = 1
    }
});

然而,这意味着当我在输入框中输入时,这些快捷方式会被触发,这是一个不受欢迎的副作用。我尝试修改顶行,使其显示为

$('svg').keydown(function (e) {
    if ( event.keyCode == 84 ) {
        $('svg > g > g').toggle();
    }
    else if ( event.keyCode == 90 ) {
        $('.zones').toggle();
    }
    else if ( event.keyCode == 70 ) {
        fit($('svg > g'));
    }
    else {
        var x = 1
    }
});

但是这不起作用,所以我该如何实现这种效果。我曾想过添加一个变量,该变量通过输入输入框和条件语句进行修改,但这接缝是一个混乱的解决方案

4

1 回答 1

0

您可以检查页面上的任何元素是否具有焦点,如果有,则阻止该函数触发。

http://api.jquery.com/focus/

于 2013-09-05T08:12:52.430 回答