【发布时间】:2015-10-01 18:33:22
【问题描述】:
我想知道是否可以在knockout.js的subscribe函数中获取event参数。
self.selectedOrder.subscribe(function(newValue, action) {
shouter.notifySubscribers(newValue, "selectedOrder");
});
我有一个包含行的表,我想在用户单击一行以选择它时通知其他视图模型。
我需要event 参数来获取$(event.currentTarget) 元素并通过添加CSS 类来突出显示该行。
$(event.currentTarget).addClasss('selected').siblings().removeClass('selected');
本来想直接用 KO 做的,但是没找到合适的方法。这似乎并不容易......
data-bind="css: {'selected': $parent.selectedUser().id == id}"
当然,当selectedUser 为空时会引发错误。
在阅读this article 关于防止空对象 之后,我只是觉得 KO 不像 jQuery 那样容易完成这项任务。所以我相信在这种情况下我会选择传统的 jQuery,因为它非常简单。
问题是,我仍然需要event 对象。
【问题讨论】:
-
试试
css: {'selected': $parent.selectedUser() && $parent.selectedUser().id == id}。此外,在self.editName = function(data, e) {中,您将event作为e参数。