Событие нажатия клавиши связывания данных не работает на div - PullRequest
0 голосов
/ 07 ноября 2018

Итак, я недавно столкнулся с этой проблемой.

Цель - использовать клавишу ввода, чтобы открыть выбранную строку, а также иметь возможность перемещаться вверх и вниз с помощью стрелок. Чтобы открыть выбранный div, мне нужно передать имя выбранного функции, которая его запускает. Поэтому важно обнаружить целевой элемент.

enter image description here

Проект использует 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.

Есть идеи, как обойти эту проблему?

1 Ответ

0 голосов
/ 07 ноября 2018

Похоже на синтаксическую ошибку

пример привязки события:

<div data-bind="event: { mouseover: enableDetails, mouseout:disableDetails }"> Mouse over me </div>

В вашем случае

<div class="prod-item k-widget" id="#:Id#" data-bind="event:{keyup: moveList},click: prodItem_onClick, dblclick: btnStartPopup_onClick">
...