2013-08-19 9 views
8

keydownイベントを使わずにCTRLのSHIFTキーを押してもらえませんか?キーダウンイベントなしでCTRLキーとSHIFTキーを検出しますか?

理由は、私はJavaScriptでのグリッドビューアーのいくつかの並べ替えを作成しています、と私はそうで、それが最も一般的な視聴者に働くよう、CTRLまたはSHIFTにキーを押し編集者とで異なるアイテムを選択し実施していることです。

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

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

+0

もしあなたのバグと見なすなら、それは彼らのせいです。彼らがあなたのページをフォーカスしたくない場合、彼らはあなたの機能を手に入れません – Ian

+2

あなたは 'onclick'ハンドラでそれらのキーを検出することができます... – Teemu

+1

@Teemu良い点。 'keydown'イベントがなぜ使われているのか分かりません。すべてがクリックポイントでチェックされるべきです – Ian

答えて

15

あなたはマウスがMDNをクリックしたときにシフトCtrlキーAltキーを検出するために、すべてのキーイベントを必要としません。

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

A demo at jsFiddle

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

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

関連する問題