javascript - 单击输入[checkbox ]'s label will fire twice the parent' s 单击事件(knockout)

标签 javascript knockout.js

考虑this fiddle.我有一个<input type='checkbox'>链接到其相应的<label> 。在他们的 parent 身上,我有一个 click捆绑。

问题是,点击<label>将触发父级的单击两次,而单击 <input>只会触发一次。

考虑到我想保留当前的 ​​HTML 结构( <label> 位于 <input> 旁边),有没有办法使 <label>行为类似于<input>元素? (又名仅触发 click 一次)

编辑:如果我删除 return true;来自click的声明handler 的函数,它不会触发两次,而且,它也不会选择复选框。需要选中该复选框。 Here is a case我没有对父元素执行操作。如果您点击<label> ,它将检查 <input> .

最佳答案

我为你找到了答案 here 。诀窍是使用自定义绑定(bind)使标签停止冒泡。

<label for="test" data-bind="stopBubble:parentAction">TestLabel</label>

stopBubble 绑定(bind)位于链接处,也在 Fiddle 中。

http://jsfiddle.net/9rkrahm6/2/

关于javascript - 单击输入[checkbox ]'s label will fire twice the parent' s 单击事件(knockout),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30629217/

相关文章:

javascript - 如何更改knockoutjs observableArray的索引而不替换整个数组

javascript - 绑定(bind)列表未显示在 Knockout.js 的 html 查看源代码中?

c# - 使用 Javascript 向框添加值并刷新。然后在代码隐藏中获取值

javascript - 如果 JS 元素为空,则删除 css 类

javascript - 我怎样才能使带有数字的div改变背景颜色

javascript - 在 html 表格的 foreach 绑定(bind)内,是否可以通过 knockout 将数据绑定(bind)到选择下拉列表?

javascript - 如何遍历 div 的子元素并隐藏它们?

javascript - 触发在 IE8 中不起作用的元素上的单击事件

javascript - 具有内联编辑功能的 Knockout CRUD 表

javascript - KnockoutJS,与 2D 数组的样式绑定(bind)?