2014-10-17 32 views
0

我创建了一个名为enterKey的自定义键绑定,它允许用户按下回车键来调用一个函数,如data= ko(enterKey: 'save')以允许用户按下回车键来保存,而不是点击事件。可能使用“tbody data =”为tbody中的某些td提供自定义绑定?

我:

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

我想申请这个enterKey数据绑定到只剩下最后2 TD的。当我尝试添加td本身的enterKey数据绑定时,它不适用于它们中的任何一个。但是,当我放置enterkey像tbody的结合:

tbody data= ko(enterKey: 'save') 

它允许每个TD手机键入回车保存。这很好,但我只想要这个功能为最后2个单元格工作。

有什么我可以添加到tbody也许强迫它忽略前2个细胞?

对不起,如果我问这是一个很难或错误的方式。任何意见都表示赞赏!

+0

'数据= KO(enterKey: '保存')'看起来并不像淘汰赛数据绑定。你在使用不同的东西吗? – 2014-10-23 23:27:08

+0

嘿,迈克尔,是它的淘汰赛数据绑定我只是添加了快捷键,使代码更简单。 data = ko()基本上是。 data-bind =“enterKey:save” – cblaize 2014-10-24 14:16:28

回答

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