Tôi đang cố gắng nắm bắt một số sự kiện keydown trong ứng dụng của mình nhưng chỉ khi không có phím "điều khiển" nào được giữ lại cùng một lúc. Tôi không muốn gặp sự cố với lối tắt bàn phím của trình đọc màn hình. Shift
, Ctrl
và Alt
dễ dàng kiểm tra vì chúng đang ở trên sự kiện javascript, nhưng tôi cũng cần kiểm tra các phím Ins
và Windows
cũng như bất kỳ phím điều khiển Mac nào.Làm thế nào để biết khóa chèn đã được giữ xuống
Đây là những gì tôi đã có cho đến nay và nó hoạt động như mong đợi, nhưng sự kiện của tôi vẫn được kích hoạt khi Ins
hoặc Windows
bị giữ.
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();
}
}
Có cách nào để kiểm tra các phím điều khiển khác một cách dễ dàng hay tôi cần phải nắm bắt những sự kiện và bám chặt vào chúng trong một số Boolean toàn cầu như this.isInsertPressed
?
Điều đó sẽ nắm bắt nó khi nó ban đầu ép, nhưng nó vẫn giữ xuống khi 'event.keyCode === $ .ui.keyCode.HOME' và tôi cần phải không cho phép điều đó làm bất cứ điều gì. –
Bạn cũng cần phải theo dõi sự kiện khóa và kiểm tra xem khóa trước đã được phát hành chưa –