jQuery: keyPress Backspace wird nicht ausgelöst?
Frage ich mich, was ich falsch mache:
$('.s').keypress(function(e) {
switch (e.keyCode) {
case 8: //Backspace
//console.log('backspace');
case 9: //Tab
case 13: //Enter
case 37: //Left
case 38: //Up
case 39: //Right
case 40: //Down
break;
default:
doSearch();
}
});
Möchte ich meine doSearch()
Funktion auch gefeuert werden, wenn ich drücken Sie die Backspace - Taste. Im moment ist absolut nichts passiert, wenn ich drücken Sie Backspace in Chrome und Safari.
irgendwelche Ideen?
Kommentar zu dem Problem
Sie können versuchen, das jQuery-plugin code.google.com/p/js-hotkeys, und verwenden Sie die "backspace" - Taste alias
es nicht das Feuer auf chrome aber nicht in Firefox.
InformationsquelleAutor der Frage matt | 2011-01-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
keyup
stattkeypress
. Dieser bekommt alle Schlüssel-codes, wenn der Benutzer drückt etwasInformationsquelleAutor der Antwort Jonathon Bolster
Stieß ich auf dieses selbst. Ich verwendet
.on
so sieht es ein bisschen anders, aber ich habe diese:Hinzufügen meine Arbeit hier in der Nähe. Ich brauchte, um zu löschen ssn eingegeben durch user also ich habe das in jQuery
InformationsquelleAutor der Antwort Rob
Wenn Sie wollen, um das Ereignis ausgelöst nur auf Veränderungen Ihrer Eingabe verwenden:
InformationsquelleAutor der Antwort Marcos Nunes
Entsprechend der jQuery-Dokumentation .keypress(), es fängt nicht nicht-druckbare Zeichen, also backspace funktioniert nicht auf Tastendruck, aber es ist gefangen in keydown und keyup:
In einigen Fällen keyup nicht erwünscht ist, oder hat andere Nebenwirkungen und keydown ausreichend ist, also eine Möglichkeit, um dies zu umgehen, ist die Verwendung
keydown
zu fangen alle Tastatureingaben legen Sie dann ein Zeitlimit von einem kurzen Zeitintervall, so dass der key eingegeben wurde, dann Tue Verarbeitung in dort nach.InformationsquelleAutor der Antwort Halcyon