Próbuję uchwycić pewne zdarzenia kluczowe w mojej aplikacji, ale tylko wtedy, gdy nie zostały naciśnięte klawisze "control" w tym samym czasie. Nie chcę wpadać na problemy ze skrótami klawiszowymi czytnika ekranu. Shift
, Ctrl
i Alt
są łatwe do sprawdzenia, ponieważ są one na razie JavaScript, ale również trzeba sprawdzić Ins
i Windows
kluczy, jak również wszelkie przyciski sterujące Mac.Jak sprawdzić, czy klawisz Insert został przytrzymany?
To jest to, co mam do tej pory i działa zgodnie z oczekiwaniami, ale moje zdarzenie jest nadal wyzwalane, gdy Ins
lub Windows
jest przytrzymany.
handleKeydown: function(event) {
var comboKeyPressed = event.ctrlKey || event.shiftKey || event.altKey;
if(!comboKeyPressed && event.keyCode === $.ui.keyCode.HOME) {
event.preventDefault();
this.$('>ul>li:last').attr('tabindex', -1);
this.$('>ul>li:first').attr('tabindex', 0).focus();
} else if (!comboKeyPressed && event.keyCode === $.ui.keyCode.END) {
event.preventDefault();
this.$('>ul>li:first').attr('tabindex', -1);
this.$('>ul>li:last').attr('tabindex', 0).focus();
}
}
Czy istnieje sposób, aby sprawdzić, czy innych klawiszy sterujących łatwo czy trzeba uchwycić te wydarzenia i trzymać je w jakimś globalnym Boolean jak this.isInsertPressed
?
To będzie go złapać, kiedy to początkowo wciśnięty, ale nadal przytrzymany gdy 'event.keyCode === $ .ui.keyCode.HOME' i muszę nie pozwalają, aby cokolwiek zrobić. –
Musisz również zachować ścieżkę zdarzenia keyup i sprawdzić, czy poprzedni klucz został zwolniony –