在 KnockoutJs 中对箭头键使用 keydown 事件时其他键不起作用

Other keys not working when using keydown event for arrow keys in KnockoutJs

我在 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 处于焦点时,向上和向下箭头以外的键都不起作用。我该如何解决这个问题?

Knockout 未收到来自 onKeyDowntrue return 值,因为 HTML 中的 keydown 绑定中没有 return 语句。

将 HTML 更改为以下内容,它应该可以工作:

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