Другие клавиши не работают при использовании события keydown для клавиш со стрелками в KnockoutJs - PullRequest
1 голос
/ 29 мая 2020

У меня есть следующая привязка к div:

<div class="my-class" tabindex="0" data-bind="event:{keydown:function(data, event){onKeyDown(event)}}">
</div>

При загрузке документа я перемещаю фокус на div, используя:

$('.my-class').focus();

Я делаю следующий внутренний скрипт для обработки клавиши со стрелками вверх и вниз всякий раз, когда div находится в фокусе:

onKeyDown(event) {
    if (event.keyCode == 40 || event.keyCode == 38) {
        // My logic
    }

    return true;
}

Клавиши со стрелками вверх и вниз отлично работают с div. Проблема теперь в том, что всякий раз, когда div находится в фокусе, клавиши, кроме стрелок вверх и вниз, не работают. Как я могу это исправить?

1 Ответ

0 голосов
/ 02 июня 2020

Значение true, возвращаемое из onKeyDown, не получено Knockout, так как в привязке нажатия клавиши внутри HTML нет оператора возврата.

Измените HTML на следующее, и оно должно работать :

<div class="my-class" tabindex="0" data-bind="event:{keydown:function(data, event){return onKeyDown(event)}}">
</div>
...