私はjwertyを使用したことがありませんが、私はお勧めしたい:
jwerty.key('m', function (e) {
if (e.target.tagName.toLowerCase() !== 'input') {
toggleMenu();
}
});
これは、イベントのターゲットをテストし、そして、それはないinput
だ場合、toggleMenu()
関数を呼び出します。 がの場合はinput
ですが、何もしません(ご希望の場合は明示的にreturn false
となります)。私は実際に行っている必要があり、上記のように、textarea
を説明するために
はif
評価に別の句を追加する(拡張することができ、あるいは以下、switch
ベースのアプローチをとることができます。
jwerty.key('m', function (e) {
switch (e.target.tagName.toLowerCase()) {
case 'input':
case 'textarea':
break;
default:
toggleMenu();
break;
}
});
ターゲット要素がm
を押すと、どちらかinput
またはtextarea
ある場合ないこれら二つの要素のいずれかの場合、デフォルトの状態に入るとtoggleMenu()
が呼ばれるのに対し、何もしません。
を私は[ドキュメント](HTTPSでこれを見つけました。 com/keithamus/jwerty)をGitで実行します。あなたがセレクタにバインドしていてコンテキストを必要としない場合は、 'jwerty.key( '^ +⇧+ P /⌘+⇧+ P'、function(){[...] }、 'input.email'、 '#myForm'); '_試してみてください。 –
function toggleMenu(){alert( 'ok');} jwerty.key( 'm'、toggleMenu、 "body:not(input)");これは動作するはずですが、入力時にも起動します。 – dt192