javascript - knockoutjs 复选框并单击父 td

标签 javascript knockout.js

我有一个包含一行的表格。该行有一个 TD(里面有一个复选框),在 TD 上我有一个点击功能。因此,当点击 TD 时,复选框将被选中/取消选中。

当我点击 TD 时它工作正常,但是当点击复选框时复选框的(视觉)值不会改变(它不会被选中/取消选中)

想要的情况是:

  1. 当我点击复选框时,复选框的(视觉)值发生变化,我可以调用函数。(例如进行 AJAX 调用)

  2. 当我点击 TD 时,复选框的(视觉)值发生变化,我可以调用一个函数。 (例如进行 AJAX 调用)

我们怎样才能做到这一点?

Sample Code

最佳答案

问题是 TD 的点击处理程序也会在您单击 checkbox 时触发,这意味着 checkbox 会被两者更改checkbox 的默认点击处理程序和 TD 的自定义点击处理程序(它们相互抵消)。解决方案是防止点击 checkbox 冒泡到 TD。您可以在 Knockout 中使用此绑定(bind)执行此操作:click:function(){return true}, clickBubble:false

它正在运行:http://jsfiddle.net/mbest/Eatdh/12/

不过,我确实认为使用 label 是更好的方法(请参阅我的其他回答)。

关于javascript - knockoutjs 复选框并单击父 td,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10823580/

相关文章:

javascript - XHR 请求被表示为被取消,尽管它似乎是成功的

javascript - HTML 表格问题导致 knockout

javascript - 无法访问knockoutjs中事件绑定(bind)中的当前项目

javascript - 当一个元素被启用/禁用时触发一个函数

javascript - knockout.js - 嵌套数组数据和级联预填充下拉列表绑定(bind)

javascript - HTTP_ORIGIN header 未通过 jquery ajax 发送

javascript - 如何声明函数的函数属性?

java - Wicket 6.18 AjaxEventBehavior ("onkeypress") 当 getPrecondition 返回 false 时

javascript - 将 ng-model 绑定(bind)到 get 和 set 的异步函数

knockout.js - KnockoutJS - 显示文本框中逗号分隔的 observableArray 的内容