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 に答える