状況:どのキーが押されたかを示すかなり標準的なkeydownハンドラーがありますが、いずれかのキーを押したままにすると、(キーが実際に押されたときに 1 回だけではなく) 繰り返し発生します。switchkeydown
なぜ問題なのか: リスナーをアクティブに保ちたいkeydown、つまり、一度に複数のキーが押されたことを検出できるようにしたいのですが、イベントは 1 回につき 1 回だけ発生させkeydownます。keyupダウンとアップの間の時間に基づいてそのために何かをしたいのですkeyCodeが、そのタイミングは複数回の発火のために台無しになっています.
私が試したこと:現在、ダウンしているリストを保持しており、リストにある場合にデフォルトの動作が発生しないように、ハンドラー内のリストkeyCodesをチェックしています。ただし、イベントは依然として非常に頻繁に発生しており、このソリューションの効率/優雅さが心配です。keydownkeyCode
実際の質問:キーが物理的に押し下げられたときだけkeydownにイベントの発生を制限したり、特定のキーコードのみをリッスンしたりする良い方法はありますか?