我创建了如下表格:
<table data-bind="with: choosenDateGoal">
<tbody data-bind="foreach: tblGoals">
<!-- ko if: status -->
<tr class="success">
<td>
<input type="checkbox" onclick="this.disabled = 'disabled';" data-bind="checked: status, disable: status, click: $root.UpdateStatus" />
</td>
<td>
<span style="width: 80%" data-bind="text: goals" />
</td>
<td>
<input type="text" style="width: 80%" data-bind="value: notes , event: { blur: $root.UpdateNote}" />
</td>
</tr>
<!-- /ko -->
</tbody>
</table>
我在每一行都有一个复选框,当我点击它时,它应该改变行颜色。 但不行。这是我改变颜色的脚本:
self.UpdateColor = function ChangeBackgroundColor() {
debugger;
if ($("input[type='checkbox']:checked")) {
$(this).parent().addClass('success'); ;
}
};
答案 0 :(得分:1)
使用淘汰赛的css绑定 - 请参阅http://knockoutjs.com/documentation/css-binding.html 尝试下面的绑定,你不要调用ChangeBackgroundColor函数
<tr data-bind="css: {success: status()}">
Zaik的答案会有效,但如果你以淘汰的方式进行,你就不需要添加任何JavaScript事件代码。这是淘汰赛的真正好处之一。