Итак, я недавно столкнулся с этой проблемой.
Цель - использовать клавишу ввода, чтобы открыть выбранную строку, а также иметь возможность перемещаться вверх и вниз с помощью стрелок. Чтобы открыть выбранный div, мне нужно передать имя выбранного функции, которая его запускает. Поэтому важно обнаружить целевой элемент.
Проект использует Knockout js, поэтому у меня есть такой код:
<div class="prod-item k-widget" id="#:Id#" data-bind=" events: { click: prodItem_onClick, dblclick: btnStartPopup_onClick,}">
, который работает нормально и действительно запускает prodItem_onClick и btnStartPopup_onClick.
Теперь мне нужен обработчик событий, который перехватывает нажатие клавиш. Поэтому я продолжаю делать то же самое и добавляю еще один обработчик событий.
<div class="prod-item k-widget" id="#:Id#" data-bind=" events:{keyup: moveList, click: prodItem_onClick, dblclick: btnStartPopup_onClick,}">
Теперь странная вещь начинает происходить. Прежде всего, он не запускает функцию moveList. Я попробовал тег 'a', и он тоже не сработал. Однако это работает нормально на входном событии. Но мне нужно, чтобы он работал с div, который имеет две строки и не является типом ввода.
Я также пытался захватывать события нажатия клавиш с помощью jQuery, проблема в том, что я не могу получить целевой элемент. Я получаю HTML всего контейнера div.
Есть идеи, как обойти эту проблему?