淘汰赛,复选框无效

时间:2012-08-29 09:53:02

标签: javascript knockout.js

我有桌子,我想要检查/取消选中复选框,不仅要点击复选框,还要点击任意一行。
代码在这里:source
但是只有当我点击行时,代码才能正常工作。当我点击复选框时,逻辑运行良好,但不是复选框 PS。数组selectedAnimals中的值应该是动物对象,而不仅仅是ID或名称

PS2。使用jQuery

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

一切运作良好,但我想用jQuery

1 个答案:

答案 0 :(得分:1)

当您选中复选框时,会发生以下情况:

  • 项目得到检查&添加到数组中(正确)。
  • 由于事件冒泡而调用add函数(复选框位于TR,其中添加了点击功能)。
  • 此功能再次翻转复选框,这将导致它从列表中删除并取消选中它。

使用checked:绑定时无法防止事件冒泡,因此执行此操作的最佳方法是从整个add中移除TR函数并将其移至其中拥有TD

Here's the Fiddle