淘汰,复选框不起作用

knockout, checkbox not working

本文关键字:不起作用 复选框 淘汰      更新时间:2023-09-26

我有一个表,我不仅要通过单击复选框来选中/取消选中复选框,还要通过单击行中的任意一个来选中
代码在这里:来源
但只有当我点击行时,代码才能正常工作。当我点击复选框时,逻辑工作正常,但复选框不正常
PS.数组selectedAnimals中的值应该是动物对象,而不仅仅是ID或名称

PS2.使用jQuery

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

所有操作都很好,但我想使用jQuery

以下是选中复选框时发生的情况:

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

使用checked:绑定时无法阻止事件冒泡,因此最好的方法是从整个TR中删除add函数,并将其移动到自己的TD中。

这是Fiddle。