Mögliches Duplikat:
Welcher Schlüsselcode für den Escape-Schlüssel mit jQuery
Wie erkennt man das Drücken der Escape-Taste in IE, Firefox und Chrome? Der folgende Code funktioniert in IE und Warnungen 27
, in Firefox jedoch0
$('body').keypress(function(e){
alert(e.which);
if(e.which == 27){
// Close my modal window
}
});
javascript
jquery
keyevent
jquery-events
Mithun Sreedharan
quelle
quelle
keyup
oderkeydown
in Kombination mitkeyCode
funktioniert in allen Browsern.$(document).on("keyup", function (e) {var code = e.keyCode || e.which; alert('key pressed: ' + code);});
Grüße aus dem Jahr 2014Antworten:
Hinweis:
keyCode
wird immer deprecated Verwendungkey
statt.Hier ist jsfiddle
keyCode
wird veraltetWelcher Schlüsselcode für den Escape-Schlüssel mit jQuery
quelle
$(document).on('keyup.unique_name', ...)
und$(document).unbind('keyup.unique_name')
===
.Die
keydown
Veranstaltung funktioniert gut für Escape und bietet den Vorteil, dass Sie siekeyCode
in allen Browsern verwenden können. Außerdem müssen Sie den Hörer andocument
den Körper und nicht an den Körper anhängen .Update Mai 2016
keyCode
wird derzeit nicht mehr unterstützt und die meisten modernen Browser bieten diekey
Eigenschaft jetzt an, obwohl Sie vorerst noch einen Fallback für eine angemessene Browserunterstützung benötigen (zum Zeitpunkt des Schreibens unterstützen die aktuellen Versionen von Chrome und Safari diese nicht).Das Update September 2018
evt.key
wird jetzt von allen modernen Browsern unterstützt.quelle
<input>
Element hinzufügen können. Er wird daher nur ausgelöst, wenn dieses Element den Fokus hat.if (evt.key === 'Escape') {
anstatt die veraltetekeyCode
.key
, sehen Sie caniuse.com/#feat=keyboardevent-keyMit JavaScript können Sie die funktionierende jsfiddle überprüfen
Mit jQuery können Sie die funktionierende jsfiddle überprüfen
quelle
auf
keyCode
&&which
&keyup
|| prüfenkeydown
quelle
Der beste Weg ist, dafür eine Funktion zu machen
FUNKTION:
BEISPIEL:
quelle
keypress
der Escape-Schlüssel nicht ausgelöst wird. Zumindest nicht in Chrome auf einem Mac.keydown
das Problem lösen.Unten finden Sie den Code, der nicht nur die ESC-Taste deaktiviert, sondern auch den Zustand überprüft, in dem sie gedrückt wird, und je nach Situation die Aktion ausführt oder nicht.
In diesem Beispiel ist
deaktiviert die ESC-Tastendruckaktion.
Sie können alles tun, um ein Div damit zu verstecken:
Wo die ESC-Taste gedrückt wird, wird auch berücksichtigt:
Sie können diesen Bedingungsteil entfernen, wenn Sie dies auf alle anwenden möchten. Oder Sie können INPUT hier als Ziel festlegen, um diese Aktion nur anzuwenden, wenn sich der Cursor im Eingabefeld befindet.
quelle
Ich denke, der einfachste Weg ist Vanille-Javascript:
quelle
Escape
alsevent.key
und nicht 27event.keyCode
27 sein.