选中复选框后更改tr颜色

时间:2012-10-16 10:25:27

标签: javascript knockout.js

我创建了如下表格:

<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'); ;
    }
};

1 个答案:

答案 0 :(得分:1)

使用淘汰赛的css绑定 - 请参阅http://knockoutjs.com/documentation/css-binding.html 尝试下面的绑定,你不要调用ChangeBackgroundColor函数

  <tr data-bind="css: {success: status()}">

Zaik的答案会有效,但如果你以淘汰的方式进行,你就不需要添加任何JavaScript事件代码。这是淘汰赛的真正好处之一。