Я использую jQuery 1.12. Я хочу, чтобы DIV захватывал нажатия клавиш (в частности, стрелки вниз вверх), когда он фокусируется. Поэтому я следил за этимПочему мой DIV не захватывает события нажатия клавиш, когда у него есть фокус?
$('div.select-styled').bind('keydown', function(event) {
console.log(event.keyCode);
elt = $(this).search(".select-options li:hover");
console.log(elt);
switch(event.keyCode){
// case up
case 38:
console.log(“up pressed.”)
break;
case 40:
console.log(“down pressed”)
break;
}
});
но это не захватывает нажатия клавиш. Смотрите мою скрипку здесь - http://jsfiddle.net/cwzjL2uw/10/. Нажмите «Выбрать состояние» или нажмите «Последнее имя» и нажмите «Вкладка», чтобы перейти к следующему DIV. Однако, когда это меню имеет фокус, нажатие любой клавиши не активирует обработчик выше, по крайней мере, это не для меня на Mac Chrome или Firefox.
Благодарен за любую помощь, -
Это работает только потому, что '.select' элемент уже имеет tabindex' атрибут' (на мой ответ ниже) - но не только потому, что '.select' является родителем , Удалите 'tabindex', и вы увидите, что проблема вернется. –
Я заметил это, и именно поэтому он получает фокус. Я хотел сообщить OP, что привязка не будет работать на 'div.select-styleled', поскольку она не фокусируется. Поэтому мое предложение - привязать элемент '.select'. @JonUleis –