【问题标题】:Data-bind keypress event does not work on div数据绑定按键事件在 div 上不起作用
【发布时间】:2018-11-06 21:08:07
【问题描述】:

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

目标是使用回车键打开选定的行,也可以使用箭头上下移动。为了打开 selected div ,我需要将 selected 的名称传递给启动它的函数。所以检测目标元素很重要。

项目使用 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。

任何想法如何解决这个问题?

【问题讨论】:

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


    【解决方案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">
    

    【讨论】:

    • 好收获。我修好了它。但事实并非如此。我错过了输入
    • @NamigIsmayilov 你仍然有语法错误,它的“事件”不是“事件”。还要将“点击”保持在事件块之外。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-29
    • 2017-01-03
    • 2021-02-23
    • 1970-01-01
    相关资源
    最近更新 更多