9

keydown イベントを使用せずに、キーが押されたCTRLことを検出してキーを押すことができるかどうか疑問に思っていました。SHIFT

その理由は、JavaScript である種のグリッド ビューアーを作成しており、最も一般的なビューアー、エディターなどで機能するように、CTRLまたはキーを押してさまざまな項目を選択する機能を実装したためです。SHIFT

問題は、フォーカスがページのどこにもない場合です。たとえば、ブックマークにページを追加しています。次に、アイテムを押したままCTRLまたはSHIFTクリックしますが、キーダウンがトリガーされていないため、正常に動作します。

これを省略する方法はありますか?そうではないかもしれませんが、それを私自身の明らかなバグとして扱う顧客にとっては混乱を招く可能性があります。

4

1 に答える 1

18

検出するためのキーイベントはまったく必要なくShift、マウスがクリックさCtrlれたときMDN .Alt

Event オブジェクトには、次の情報が含まれています。

element.addEventListener('click', function (e) {
    console.log(e.shiftKey);
    console.log(e.ctrlKey);
    console.log(e.altKey);
});

jsFiddle のデモ

これらのプロパティは、キーボード イベント ハンドラでも読み取ることができます。

于 2013-08-19T15:06:24.190 に答える