2011-12-19 10 views
10

ウェブアプリケーションでズームインとズームアウト機能を起動するにはプラスキーとマイナスキーを使用します。次のコードは、主に、作品:javascriptでplus/equalsとequalsキーを区別するにはどうすればよいですか?

$(document).keydown(function(e) { // requires jQuery 
    console.log(e.keyCode); 
    if (e.keyCode === 189) { // minus 
     zoom_out(); 
     return false; 
    } 
    if (e.keyCode === 187) { // plus 
     zoom_in(); 
     return false; 
    } 
}); 

=/+キーなどのキーパッド+キーを押したときに、それが返さキーコード187。これは奇妙ですが、これは問題ありませんが、キーパッドからキーも返されますが、私はズームに使用したくありません。どのようにして+/=、=、+キーを区別できますか?

+2

"keydown"の代わりに "keypress"を使うことができます。これは、キーコードだけでなく、完全に翻訳された文字を取得するためです。 – Pointy

+0

ブラウザで 'Ctrl' +' + 'が既にこれを実行しています –

+0

keydownやkeyup(keypressと比較して)を使用している場合は、=/+キーとkeypad +シフトを保持しているかどうかにかかわらず、=/+のコード。ここでテストされているように私のキーボードで異なるコードを取得します:http://www.webonweboff.com/tips/js/event_key_codes.aspx#instant-test(私のキーパッドは=キーを持っていないので、キーボードは異なる必要があります。) – nnnnnn

答えて

9

shiftKeyプロパティを使用します。

e.shiftKeytrueある場合(あなたはそれを推測!)Shiftキーが押されていので、e.keyCode === 187 && e.shiftKey+が押されたことを意味します。

関連する問題