2014-10-17 35 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" />