【问题标题】:Other keys not working when using keydown event for arrow keys in KnockoutJs在 KnockoutJs 中为箭头键使用 keydown 事件时,其他键不起作用
【发布时间】:2020-09-16 14:58:02
【问题描述】:

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

【问题讨论】:

    标签: javascript html knockout.js


    【解决方案1】:

    Knockout 没有收到从 onKeyDown 返回的值 true,因为 HTML 内的 keydown 绑定中没有 return 语句。

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

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

    【讨论】:

      猜你喜欢
      • 2011-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-11
      • 2015-04-28
      相关资源
      最近更新 更多