在 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 未收到来自 onKeyDown
的 true
return 值,因为 HTML 中的 keydown 绑定中没有 return 语句。
将 HTML 更改为以下内容,它应该可以工作:
<div class="my-class" tabindex="0" data-bind="event:{keydown:function(data, event){return onKeyDown(event)}}">
</div>
我在 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 未收到来自 onKeyDown
的 true
return 值,因为 HTML 中的 keydown 绑定中没有 return 语句。
将 HTML 更改为以下内容,它应该可以工作:
<div class="my-class" tabindex="0" data-bind="event:{keydown:function(data, event){return onKeyDown(event)}}">
</div>