2012-10-16 142 views
0

我已经创建的表像下面:更改TR的颜色,当复选框选中

<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

利用基因敲除的CSS结合 - 见http://knockoutjs.com/documentation/css-binding.html 下面尽量结合,你不叫ChangeBackgroundColor功能

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

Zaik的回答会的工作,但如果你做它淘汰赛的方式,你不需要添加任何JavaScript事件代码。这是淘汰赛的真正好处之一。

+0

我想用css绑定。但是我想在复选框被选中时更改tr颜色。那么怎么做呢? – akeeseth

+0

请原谅我的错误,我忘记将我的示例标记为可以正确显示的代码。我编辑了我的答案,现在显示。在我上面的例子中,当表达式为真时,将显示类“成功”。请注意,使用“status()”。这将可观测值“解开”为仅可测试的值。 –

+0

它显示页面加载后的CSS类效果,但我想单击复选框时更改行的背景颜色。 – akeeseth