2012-10-16 72 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