2017-04-20 25 views
1

キーボードショートカットを実装するためにjquery.hotkeysを使用しています。jQuery.HotKeys入力がフォーカスされているときのキーバインド

マイコード:

$(document).bind('keydown', 'Ctrl+f', function() { 
     $('#myid').focus(); 
     return false; 
    }); 

これが正常に動作します。しかし、いずれかの入力にフォーカスがある場合、キーストロークはデフォルトでブラウザオリジナル(この場合はfind)になります。入力ボックスの外側をクリックすると、目的の関数がjquery.hotkeysによって呼び出されます。

入力が集中しているかどうかにかかわらず、一貫した動作を得たい場合はどうすればよいですか?

+0

すべてのホットキーはCtrlキーで始まりますか? – Kramb

+0

@Krambはい、残念ながら:-( –

答えて

0

は、ドキュメントを参照してください:ユーザーが入力要素 またはあなたが要素に直接 ホットキーをバインドしない限り=「真」のcontentEditableている任意の要素内に集中している場合https://github.com/jeresig/jquery.hotkeys#hotkeys-within-inputs

ホットキーは追跡されません。これにより、通常のユーザー入力の との競合を避けることができます。

jQuery.hotkeys.options.filterInputAcceptingElements jQuery.hotkeys.options.filterContentEditable jQuery.hotkeys.options.filterTextInputs(非推奨、:あなたはこれをしたくない場合は、スーツに次の ブールを変更することができます

$(document).bind('keydown', function(e) { 
    if (e.ctrlKey && e.which == 70) { 
     $('#myid').focus(); 
     return false; 
    } 
}); 

問題があり、それはプラグインを使用していない。)以降のバージョンで に削除されます

+0

私はこれらのオプションを見ましたが、動作しないか、構文がわかりません(jQueryの基礎がいくつかあります)。 hotkeys.options.filterInputAcceptingElements = false; 'しかし動作しません。正しいですか? –

0

あなたはこのショットを与えることができます。だから最初の質問IMHOに答えることができないので、それがあなたのために働いていても答えをマークしてはいけません。

関連する問題