【问题标题】:how to detect a mouse click, enter key or tabbed item on drop down list box in knockout如何检测鼠标点击,在敲除的下拉列表框中输入键或选项卡项
【发布时间】:2013-02-21 21:28:00
【问题描述】:

当用户执行以下操作之一时,从下拉列表框中获取所选项目值的最佳方法是什么;

在项目上按 Tab 键,

按回车键或

鼠标点击项目。

我是否必须为每个事件创建一个 javascript 事件处理程序,或者是否有一个很好的方法可以通过淘汰赛来做到这一点。

有什么好的 jsfiddle 示例我可以看看吗?

谢谢

【问题讨论】:

  • value 绑定是最好的方法。

标签: knockout.js knockout-mvc


【解决方案1】:

您可以使用自定义绑定来捕获这些事件。

ko.bindingHandlers.tabEnterClick = {
    init: function(element, valueAccessor) {
        $(element).click(function() {
            valuAccessor()();
        }).keydown(function(event) {
            if (event.which == 13 /*enter*/ || event.which == 9 /*tab*/) {
                valuAccessor()();
            }
        }
    }
};

但是,如果您只想从下拉列表中了解所选项目,value 绑定就可以了。

【讨论】:

  • 感谢您的建议,给我一些尝试。我很难使用事件绑定,它适用于关闭输入字段,但单击不会刷新所有其他可观察对象,直到完成另一次单击。它建立在 jquery 自动完成之上,它接受一个输入框并在您键入时将其变为下拉列表。如果我在单击字段内外的选择后单击其他任何位置,那么所有内容都会像使用选项卡一样刷新。
猜你喜欢
  • 1970-01-01
  • 2014-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多