【问题标题】:Possible to use "tbody data=" to provide custom bindings to only some of the td's in a tbody?可以使用“tbody data=”来为 tbody 中的一些 td 提供自定义绑定吗?
【发布时间】:2014-12-13 12:06:21
【问题描述】:

我创建了一个名为 enterKey 的自定义键绑定,它允许用户按 enter 调用诸如 data= ko(enterKey: 'save') 之类的函数,以允许用户按 enter 保存,而不是单击事件。

我有:

tbody
  tr
    td
    ...
    td
    ...
    td
    ...
    td
    ...

我只想将此 enterKey 数据绑定应用到最后 2 个 td。当我尝试在 td 本身中添加 enterKey 数据绑定时,它对它们中的任何一个都不起作用。但是当我将 enterkey 绑定放在 tbody 中时:

tbody data= ko(enterKey: 'save')

它允许每个 td 单元格按回车键保存。这很好,但我只希望此功能适用于最后 2 个单元格。

有什么我可以添加到 tbody 以强制它忽略前 2 个单元格的吗?

对不起,如果我以一种艰难或错误的方式提出这个问题。感谢任何反馈!

【问题讨论】:

  • data= ko(enterKey: 'save') 看起来不像 Knockout 数据绑定。你用的是不同的东西吗?
  • 嘿迈克尔,是的,它的淘汰赛数据绑定我只是添加了快捷方式以使代码更简单。 data= ko() 本质上是。 data-bind="enterKey: 保存"

标签: html knockout.js binding


【解决方案1】:

我这样做:

ko.bindingHandlers.enterkey = {
init: function (element, valueAccessor, allBindings, viewModel) {
    var callback = valueAccessor();
    $(element).keypress(function (event) {
        var keyCode = (event.which ? event.which : event.keyCode);
        if (keyCode === 13) {
            callback.call(viewModel);
            return false;
        }
        return true;
    });
}};

那么对于绑定中的每个 td:

<td data-bind="enterkey: doStuff" />

【讨论】:

    猜你喜欢
    • 2016-07-26
    • 2012-10-29
    • 1970-01-01
    • 2021-07-19
    • 2018-06-30
    • 2012-04-27
    • 1970-01-01
    • 2018-04-27
    • 1970-01-01
    相关资源
    最近更新 更多