Похоже (потому что вы не указали действительно важный код), что ваша конечная точка ajax на стороне сервера возвращает неупорядоченный список HTML, и это вставляется в div offertionList.Это будет мое предположение.Ваш CSS позволяет использовать псевдо-селектор при наведении курсора, поэтому поддержка мыши выглядит хорошо.
Для поддержки клавиатуры вам нужно добавить обработчик события для события keypress
, возможно, для document
.Добавьте обработчик, когда отобразится окно с предложением, удалите его, когда он будет отклонен.
Обработчик события должен будет отслеживать клавиши со стрелками вверх и вниз, а также ввод.Вам нужно будет добавить и удалить специальный класс (или, возможно, идентификатор) для элемента li
, который выбран в данный момент, что означает, что вам придется отслеживать, сколько элементов нужно прокрутить, и какой из них выделен в данный момент.один.Поэтому, если вы видите клавишу со стрелкой вниз, добавьте ее к текущему индексу (если вы используете последний, игнорируйте клавишу).Удалите специальный класс из элемента li
, который вы только что оставили, и добавьте его к новому (очевидно, стилизуйте класс соответствующим образом в вашем CSS).Когда нажата клавиша ввода, вы знаете, какой элемент выбран, поэтому верните его или сделайте с ним что хотите.