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;
}
});
target-element が または のいずれかであるinput
場合textarea
、 を押しm
ても何も起こりませんが、これらの 2 つの要素のいずれでもないtoggleMenu()
場合は、デフォルト状態に入り、が呼び出されます。