0

私はテーブルを持っており、チェックボックスをクリックするだけでなく、行内でもクリックしてチェックボックスをチェック/チェック解除したい。
コードはここにあります: source
しかし、コードは行をクリックしたときにのみうまく機能します。チェックボックスをクリックすると、ロジックはうまく機能しますが、チェックボックスは機能しません。
PS。配列の値は、selectedAnimalsID や名前だけでなく、動物オブジェクトでなければなりません

PS2。jQueryで

   $("table").on("click", "tbody tr", function(e){
       ko.dataFor(this).isSelected(!ko.dataFor(this).isSelected())
    })  

すべてうまくいきますが、jQueryなしでやりたいです

4

1 に答える 1

1

チェックボックスをオンにすると、次のようになります。

  • 項目がチェックされ、配列に追加されます (正しい)。
  • イベントのaddバブリングによって関数が呼び出されます (チェックボックスはTR、クリック関数が追加された にあります)。
  • この関数は、チェックボックスを再び反転し、リストから削除してチェックを外します。

checked:バインディングを使用しているときにイベントのバブリングを防ぐことはできないため、これを行う最善の方法は、add関数全体から関数を削除し、TR独自の に移動することTDです。

これがフィドルです。

于 2012-08-29T10:35:26.103 に答える