Der nächste Beispielcode gibt eine "Keydown" -Meldung viele Male aus, während ich eine Taste gedrückt halte. Die Dokumentation sagt , dass das Keydown-Ereignis einmal für einen einzigen Tastendruck ausgelöst wird. Das Keydown-Ereignis funktioniert also wie das Keypress-Ereignis im nächsten Beispiel.
%Vor%Ich habe es unter Windows, Firefox 19.0.2 und Google Chrome 25.0.1364.152 getestet. Außerdem habe ich eine Geige erstellt (das Problem kann reproduziert werden). JQuery-Versionen, für die das Problem reproduziert wird: 1.8.2, 1.9.1.
Aktualisieren.
Ich erkannte das Problem: Wie kann ich automatische Wiederholung vermeiden? Keydown-Ereignisse in JavaScript? .
Das
keydown
-Ereignis tritt auf, wenn die Taste gedrückt wird, unmittelbar gefolgt vomkeypress
-Ereignis. Dann wird das Ereigniskeyup
generiert, wenn der Schlüssel freigegeben wird.Um den Unterschied zwischen
keydown
undkeypress
zu verstehen, ist es nützlich, den Unterschied zwischen einem "Zeichen" und einem "Schlüssel" zu verstehen. Ein "Schlüssel" ist eine physische Taste auf der Computertastatur, während ein "Zeichen" ein Symbol ist, das durch Drücken einer Taste eingegeben wird. Theoretisch stellen die Ereignissekeydown
undkeyup
Tasten dar, die gedrückt oder losgelassen werden, während das Ereigniskeypress
ein Zeichen darstellt, das getippt wird. Die Implementierung der Theorie ist nicht in allen Browsern gleich.
Das KeyPress-Ereignis wird nicht durch Noncharacter-Tasten ausgelöst. Die Non-Character-Tasten lösen jedoch die KeyDown- und die KeyUp-Ereignisse aus.
Schlüsselereignisse treten in der folgenden Reihenfolge auf:
Sind diese Ereignisse in den fokussierbaren Elementen Fenster, Dokument, Formular verfügbar?
Testseite
Das Keydown-Ereignis tritt auf, wenn die Taste gedrückt wird, gefolgt von dem Tastendruck-Ereignis.
Ich antworte hier und folge mir langsam:
keydown
: funktioniert, wenn du mit der Eingabe von Schlüssel anfängst oder beginnst, etwas zu ändern, und keydown gibt dir ein Ergebnis für einen Druck, aber gib dir das Ergebnis vor dem letzten nicht letzten Ergebnis.
keyup
: funktioniert, wenn Sie einen Schlüssel nicht mehr eingeben oder zurückgehen (ändern Sie etwas wie Zeichen entfernen) und geben Sie das letzte Ergebnis.
keypress
: funktioniert, wenn du anfängst, key zu tippen, aber nicht anfängst, etwas zu ändern, und keydpress gibt dir ein Ergebnis für einen Druck, aber gib dir das Ergebnis vor dem letzten, welches (lastResult - 1)
Tags und Links javascript jquery