Ich möchte überprüfen, mit jQuery, wenn eine Taste gedrückt und dann losgelassen wird. Nur nach der Veröffentlichung möchte ich, dass die Funktion ausgeführt wird (es ist in Ordnung, wenn die einzige Möglichkeit dies nicht mit jQuery zu tun hat, aber wenn es einen Weg für beide gibt, wäre es lieber der mit weniger Bytes).
Ich bin mir ziemlich sicher, dass die Lösung eine Mischung aus keyup()
und keydown()
oder keypress()
Funktionen verwenden würde, aber ich habe nicht herausgefunden, wie Sie sie verketten, so dass der Code die gewünschte Ausgabe erhalten würde. Mein aktueller Code ist:Erkennen, wenn eine Taste gedrückt und dann mit jQuery freigegeben wird
$("body").keydown(function(event) {
$("body").keyup(function(event) {
console.log("key pressed/released");
var keyPressed = keys[event.keyCode];
player.hit(keyPressed);
});
});
Aber das führt zu Zehn key pressed/released
Meldungen in der Konsole angemeldet ist, nachdem ich eine Taste loslassen. Das Entfernen von keydown()
oder keyup()
führt zu key pressed/released
Nachrichten, die protokolliert werden, wenn ich eine Taste drücke bzw. wenn ich sie loslasse. keypress()
funktioniert auch nicht anstelle von keydown()
, keyup()
, oder nur für sich. Was soll ich tun, um mein gewünschtes Ergebnis zu erreichen?
Ich muss Ihnen dringend empfehlen [Mausefalle] (https://craig.is/killing/mice) –
* "die mit weniger Bytes" * - meine Sie andere als die jQuery.js Datei selbst ? Also, sagen wir, drei Codezeilen, die jQuery-Methoden aufrufen, plus die gesamte jQuery.js-Bibliothek wären "weniger" als zehn Zeilen Nicht-jQuery-Code? – nnnnnn
@nnnnnn ja, ich meine in meiner Datei selbst. Es ist nicht wirklich wichtig, aber –