2017-10-12 3 views
0

Ich versuche, eine Antwort zu erhalten, wenn Besucher die Schlüssel richtig verwendet undjQuery - Tastaturcode - Was ist falsch?

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

Arbeits Es ist nicht links. was funktionierte die Linie

if(key == 'a') 

ich diese Tabelle verwendet den Code https://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes

Ist es zu finden, weil jQuery andere Tabelle hat? oder sollte ich auch JavaScript laden? Wie benutze ich dann die beiden? (jQuery und JavaScript?)?

Vielen Dank im Voraus

EDIT:

Ich glaube, ich es

bekam
String.fromCharCode(event.which) 

JavaScirpt kann keine Strings als Zahlen lesen? Muss ich andere Funktionen verwenden? Ich bin neu, kannst du mir sagen, was ich tun soll?

Antwort

0

Ich finde für mich, dass, wenn ich diese Art von "Get Item from Event" zu implementieren, dass eine einfache console.log(event) Wunder tut. Ich würde beginnen mit:

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

Dann drücken Sie die Pfeiltasten nach rechts und links und sehen was passiert.

Zunächst eine Beobachtung: Ich beachte, dass Sie die Zeichenfolge '37' vergleichen, die sich von dem Ganzzahlwert 37 unterscheidet. Ersteres ist zwei oder vier Bytes (abhängig davon, wie die JS-Implementierung Zeichen speichert), während das letztere ein Byte ist. Ist das Ihre Absicht, nachdem Sie die entsprechenden APIs gelesen haben?

Zweitens, als einen speziellen Vorschlag, wenn Sie jQuery verwenden, nutzen Sie die Normalisierung Routinen. In diesem Fall wird event.which Rückkehr 0, aber Sie können event.keyCode verwenden, die wahrscheinlich ist, was Sie vergleichen wollen:

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

Vielen Dank! Ich habe versucht zu verbessern, aber es lässt mich nicht. Kannst du mir helfen, jQuery mit wechselndem Hintergrund zu benutzen? Ich habe versucht, diese if (event.keyCode == 37 || event.keyCode == 39) { $ ('main'). css ('Hintergrund', 'gelb') Event.preventDefault() } }) aber es funktioniert nicht – Roai1

+0

Leider ohne mehr Kontext, nein. Schlage vor, dass Sie die jQuery API lesen und/oder eine neue Frage stellen. Diese Frage wurde beantwortet. – hunteke

+0

Ich denke, Sie sollten eine weitere Frage für Folgemaßnahmen wie diese einreichen, aber um Ihnen zu helfen, können Sie [diese Frage] (https://stackoverflow.com/questions/4283141/jquery-change-background -color) – Garrett

0

Was möchten Sie ist die keydown Ereignis verwenden. Auch kein Grund, die String.fromCharCode zu verwenden, können Sie nur die ganzen Zahlen vergleichen. So etwas würde funktionieren

$(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

Vielen Dank! Ich würde upvote, aber es lässt mich nicht – Roai1