我创建了一个名为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个单元格。
我可以添加一些内容来强迫它忽略前两个单元格吗?
很抱歉,如果我问这个方法有多么困难。任何反馈都表示赞赏!
答案 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" />