0

以下のようなテーブルを作成しました。

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

1 に答える 1

1

ノックアウトの CSS バインディングを使用してください - http://knockoutjs.com/documentation/css-binding.htmlを参照 してください 以下のバインディングを試してみてください。ChangeBackgroundColor 関数は呼び出されません。

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

Zaik の回答は機能しますが、ノックアウト方式で行う場合は、JavaScript イベント コードを追加する必要はありません。これは、ノックアウトの真の利点の 1 つです。

于 2012-10-16T10:33:22.873 に答える