可以使用" tbody data ="仅为tbody中的某些td提供自定义绑定?

时间:2014-10-17 20:25:19

标签: html knockout.js binding

我创建了一个名为enterKey的自定义Keybinding,允许用户按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个单元格。

我可以添加一些内容来强迫它忽略前两个单元格吗?

很抱歉,如果我问这个方法有多么困难。任何反馈都表示赞赏!

1 个答案:

答案 0 :(得分:0)

我这样做:

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