2016-04-17 17 views
1

Was fehlt mir, um meine jQuery onClick-Ereignisse in Tastendruckereignisse zu übersetzen, in denen ein Benutzer eine Tastatur verwenden kann?Switch jQuery onClick to keyCode

Das spezifische Beispiel ist für einen Taschenrechner. Die Verwendung von jQuery und den Einschalt-/Klickereignissen funktioniert perfekt. Jedoch, wenn ich Keycodes einführe, bekomme ich nicht die Ergebnisse, die ich denke, ich sollte.

Hier ist mein Beispielcode;

$(document).keypress(function(event){ 
    var display = "0"; 
    var keycode = (event.keyCode ? event.keyCode : event.which); 
    if(keycode === 13){ 
     alert(keycode + " = ENTER");  
     calcDisplay(total(), true); 
    } 
}); 

Die meisten davon habe ich von anderen erfolgreichen Lösungen für ähnliche Probleme abgeholt. So wie ich es verstehe, ist es; Wenn jemand drückt "Enter" auf der Tastatur, würde ich meine Warnung erhalten und dann meine Antwort verarbeiten.

Die jQuery-Version von dieser, die für mich funktioniert, sieht so aus;

superNewb zu JS hier so viel Liebe vor der Zeit, wenn das etwas super dumm auf meinem Ende ist.

+0

Code sollte arbeiten können. Hier ist ein Plünderer mit der Arbeit https://plnkr.co/edit/mvDnrOEiUPgmUKWBj5OD?p=preview. Was bedeutet 'console.log (keycode);' gibt es direkt vor 'if (keycode === 13) ' –

+0

Wenn Sie' keycode' protokollieren, was ist der Wert? –

+0

hören Sie 'keydown' anstelle von' keypress'. – zzzzBov

Antwort

1

keypress wird verwendet, wenn Zeichen als Eingabe eingefügt werden. keydown soll verwendet werden, um irgendein Schlüssel zu ermitteln.

quirksmode has a nice little write-up about the differences.

Anstelle von $(document).keypress$(document).keydown verwenden.


Zusätzlich normalisiert jQuery event.which, so statt:

var keycode = (event.keyCode ? event.keyCode : event.which); 

Sie

var key = e.which; 
+0

Magisch! Alle Operatoren arbeiten nach Bedarf. Es scheint auch, dass ich versucht habe, dies getrennt nach der Funktion calcDisplay() zu suchen, bevor sie definiert wurde. Die numerischen Tastencodes sind noch nicht gelöst, aber wir sind auf dem richtigen Weg. Danke euch allen für die Hilfe. –