我想知道用户导航或点击的表格中的哪一行。
可以使用Knockout hasFocus
绑定来跟踪当前行索引,以便在视图模型中我可以根据需要获取该行索引值吗?
该表以这种方式填充:
<tbody data-bind="foreach: sitesList">
<tr>
<td data-bind ... > </td>
<td data-bind ... > </td>
.
.
.
et cetera
答案 0 :(得分:1)
可能有更好的方法来做到这一点,但......
HTML:
<table>
<tbody data-bind="foreach: sitesList">
<tr data-bind="event: { focusout: $parent.updateSelectedRow }">
<td data-bind="text: $data"></td>
</tr>
</tbody>
</table>
Index: <span data-bind="text: selectedRowIndex"></span>
JS:
function ViewModel()
{
var self = this;
self.selectedRowIndex = ko.observable();
self.sitesList = ko.observableArray(["google.com", "bing.com", "yahoo.com"]);
self.updateSelectedRow = function(row)
{
self.selectedRowIndex(self.sitesList.indexOf(row));
};
}
ko.applyBindings(new ViewModel());
这是一个小提琴的链接,演示了它的工作原理:http://jsfiddle.net/TrueEddie/L3YP4/2/
修改强>
将其更改为使用事件绑定。我用mouseenter工作了。也许您可以使用onfocus事件?