0

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

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 回答