数据绑定按键事件在div上不起作用

时间:2018-11-06 21:08:08

标签: javascript jquery html knockout.js kendo-ui

所以我最近遇到了这个问题。

目标是使用Enter键打开选定的行,并且还可以使用箭头上下移动。为了打开选定的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捕获按键事件,这里的问题是我无法获得目标元素。我得到整个容器div的html。

有什么想法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

看起来像语法错误

示例事件绑定:

<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">