2017-10-12 3 views
0

私は訪問者が右のキーを使用するときの応答を取得しようとそれは働いていないjQuery - キーボードのキーコード - 何が間違っていますか?

<script> 
    $(document).keypress(function(event) { 
    key = String.fromCharCode(event.which) 
    if(key == '37' || key == '39') { 
     $('main').html('You pressed : ' + key) 
     event.preventDefault() 
    } 
    }); 
</script> 

を残しています。ライン

if(key == 'a') 

私はjQueryの別のテーブルを持っているので、コードhttps://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes

がそれを探すためにこの表を使用したものでした仕事でしたか? JavaScriptをロードする必要がありますか?それで私はどうやって2人を使うのですか? (jQueryとJavaScript?)事前に

おかげで

EDIT:

私はそれを

だと思います
String.fromCharCode(event.which) 

JavaScirptが数字として文字列を読み取ることができませんか?私は別の機能を使用する必要がありますか?私はこれに新しいですあなたは私に何をすべきか教えていただけますか?

答えて

0

私はこれらの種類を実装するために行くとき、単純なconsole.log(event)は不思議を行うことを、「イベントからアイテムを取得する」ことを自分で見つけます。私はまず:

$('body').on('keypress', function(evt){ 
    console.log('Event: ', evt); 
}); 

次に、左右の矢印キーを押して何が起こるかを見てみましょう。

最初に、私は、整数値37とは別の文字列'37'を比較していることに注意してください。前者は2バイトまたは4バイトです(JS実装での文字の格納方法によって異なります)。後者は1バイトです。それは適切なAPIを読んだ後のあなたの意図ですか?あなたはjQueryのを使用している場合

第二には、具体的な提案として、それの正規化ルーチンを利用します。この場合、event.whichは0を返すされていますが、比較したいおそらく何であるevent.keyCodeを使用することができます。

if (37 === event.keyCode) { 
    // ... 
} 
else if (39 === event.keyCode) { 
    // .... 
} 
+0

おかげでたくさん働くだろう。このような何か!私はupvoteしようとしたが、それは私を許可しません。あなたは背景を変更してjqueryを使用して私を助けることができますか? (event.keyCodeが== 37 || event.keyCode == 39) 場合、私は、この を試み{ $( '主')。CSS( '背景'、 '黄色') event.preventDefault() } }) しかし、それは動作しません – Roai1

+0

残念なことに、より多くの文脈なしで、 jQuery APIを読んだり、新しい質問を投稿したりすることをお勧めします。この質問に答えました。 – hunteke

+0

私はこのようなフォローアップのために別の質問を提出することになっていると思いますが、あなたを助けるために、あなたは[この質問]を見ることができます(https://stackoverflow.com/questions/4283141/jquery-change-background - カラー) – Garrett

0

あなたが使用したいことは​​イベントです。また、String.fromCharCodeを使用する理由もなく、単に整数を比較することができます。

$(document).keydown(function(event) { 
    if (event.which == 37 || event.which == 39) { 
    var key = event.which == 37 ? 'left' : 'right'; 
    $('main').html('You pressed : ' + key) 
    event.preventDefault() 
    } 
}) 
+0

ありがとう!私はupvoteだろうが、それは私をさせていない – Roai1

関連する問題