私のアプリでは、ツールチップの追加情報を切り替えるために、Altキーを押したままにする必要があります。しかし、最初にAltキーを押すと、ドキュメントはChromeのメニューに移動するため、キーボードのフォーカスが失われます。ドキュメントの任意の部分をクリックすると、再び動作します(一度)。ChromeのAltキーを検出する
preventDefault
を呼び出すことでこれを回避できますが、Alt +左/右などのキーボードショートカットも無効になりますが、これは望ましくありません。
また、mousemove
を処理し、altKey
フラグをチェックすることもできますが、マウスを移動したときにのみ更新すると非常に厄介です。
私の状況で現在のAltキーの状態を確実に検出する方法はありますか?私は本当にむしろ別のキーに切り替えることはありません。
更新:ツールチップがアクティブな場合にのみpreventDefault
を呼び出すことをお勧めします。
document.addEventListener("keydown", (e) => {
if (this.curComponent) e.preventDefault();
if (e.which === 18) {
this.outer.classList.add("AltKey");
}
});
document.addEventListener("keyup", (e) => {
if (this.curComponent) e.preventDefault();
if (e.which === 18) {
this.outer.classList.remove("AltKey");
}
});
イベントの設定方法はわかりましたが、動作しません。質問をお読みください。また、17はCtrlではなくAltです。 – riv