Możliwy duplikat:
Który kod dostępu do klawisza Escape w jQuery
Jak wykryć naciśnięcie klawisza Escape w IE, Firefox i Chrome? Poniższy kod działa w IE i ostrzega 27
, ale w Firefox ostrzega0
$('body').keypress(function(e){
alert(e.which);
if(e.which == 27){
// Close my modal window
}
});
javascript
jquery
keyevent
jquery-events
Mithun Sreedharan
źródło
źródło
keyup
lubkeydown
w połączeniu zkeyCode
działa we wszystkich przeglądarkach.$(document).on("keyup", function (e) {var code = e.keyCode || e.which; alert('key pressed: ' + code);});
Pozdrowienia z 2014 r.Odpowiedzi:
Uwaga:
keyCode
jest coraz przestarzałej użyciekey
zamiast.Oto jsfiddle
keyCode
jest przestarzałyKtóry kod dostępu do klawisza Escape w jQuery
źródło
$(document).on('keyup.unique_name', ...)
oraz$(document).unbind('keyup.unique_name')
===
.keydown
Wydarzenie będzie działać dobrze dla uciec i ma tę zaletę, że pozwala na użyciekeyCode
we wszystkich przeglądarkach. Musisz także dołączyć słuchacza dodocument
ciała, a nie do ciała.Aktualizacja maja 2016 r
keyCode
jest obecnie w trakcie wycofywania i większość współczesnych przeglądarek oferuje tękey
właściwość teraz, choć na razie będziesz potrzebować rezerwy na przyzwoitą obsługę przeglądarek (w chwili pisania bieżących wersji Chrome i Safari nie obsługują jej).Aktualizacja z września 2018 r.
evt.key
Jest teraz obsługiwana przez wszystkie nowoczesne przeglądarki.źródło
<input>
elementu, dlatego zostanie on uruchomiony tylko wtedy, gdy ten element jest aktywny.if (evt.key === 'Escape') {
zamiast używać przestarzałegokeyCode
.key
, zobacz caniuse.com/#feat=keyboardevent-keyZa pomocą JavaScript możesz zrobić sprawdzenie działającego jsfiddle
Za pomocą jQuery możesz sprawdzić działający jsfiddle
źródło
sprawdź, czy
keyCode
&&which
&keyup
||keydown
źródło
Najlepszym sposobem jest stworzenie do tego funkcji
FUNKCJONOWAĆ:
PRZYKŁAD:
źródło
keypress
nie działa na klawisz Escape. Przynajmniej nie w Chrome na Macu.keydown
naprawić problem.Poniżej znajduje się kod, który nie tylko wyłącza klawisz ESC, ale także sprawdza stan, w którym został naciśnięty, i w zależności od sytuacji wykona akcję lub nie.
W tym przykładzie
wyłączy działanie klawisza ESC.
Możesz zrobić coś takiego, aby ukryć div z tym:
W przypadku uwzględnienia również naciśniętego klawisza ESC:
Możesz usunąć to, jeśli warunek jest częścią, jeśli chcesz zastosować to do wszystkich. Lub możesz tutaj kierować INPUT, aby zastosować tę akcję tylko wtedy, gdy kursor znajduje się w polu wprowadzania.
źródło
myślę, że najprostszym sposobem jest javascript waniliowy:
źródło
Escape
jakevent.key
i nie 27event.keyCode
27.