为什么我的Knockout Radio按钮在使用单击绑定的另一个元素内时会失败
Why are my Knockout Radio buttons failing when inside another element with a click binding?
我有一个单选按钮列表。我想点击他们的<li>
也可以检查单选按钮。直到我在无线电元素上设置了name
属性,这一切都会起作用。然后我的代码停止工作。
以下是我的代码:
<ul data-bind="foreach: rows">
<li data-bind="click: function() { $parent.val($data); }">
<input type="radio" name="my_radio" data-bind="value: $data, checked: $parent.val" />
<label data-bind="text: $data"></label>
</li>
</ul>
这里有两个测试用例。
请确保同时单击单选按钮和行
工作:http://jsfiddle.net/Dihedral/HJGxX/2/
不工作:http://jsfiddle.net/Dihedral/HJGxX/3/
在第二种情况下,当只点击单选按钮时,您会看到val()observable正在更新,但UI没有。有人知道这里发生了什么,或者能找到解决办法吗?
点击没有到达单选按钮,因为knockoutjs从点击处理程序返回false,从而阻止了默认操作的发生(请参见:注释3)。只需从单击处理程序返回true(http://jsfiddle.net/HJGxX/4/):
<li data-bind="click: function() { $parent.val($data); return true; }">
将name属性都设置为相同的值会使所有这些单选按钮成为同一集合的一部分,并且一次只能选择其中一个。
有关单选按钮名称属性的更多信息,请访问www.W3.org
相关文章:
- 使用clickToggle并在单击另一个元素时关闭元素
- 按我自己的类克隆另一个元素的内容和顺序
- 如何通过HTML+CSS中的另一个元素Selector更改元素的属性值
- 使用svg和javascript将一个类的元素动画化为另一个类
- 将html元素插入到文本字符串中,以匹配另一个html字符串
- jQuery-将列表项的一个元素移动到同一项的另一个元素中+对我的列表中的每个项执行此操作
- jquery从另一个元素中移除移除
- DIV怎么能像Javascript中的另一个元素一样工作呢
- 使用数据属性将HTML数据复制到另一个元素
- 如何从另一个带下划线的数组中筛选带元素的数组
- 将鼠标悬停在Angular JS中的一个元素上,并将Class添加到另一个元素中
- 在类JavaScript选择的另一个元素中选择一个标记元素
- 只要存在,就用另一个元素替换一个元素
- 检查一个元素是否有一个类与另一个类总是返回true
- 初学者反应查询(如何删除一个元素并附加另一个元素)
- 将jquery ui窗口的父元素设置为另一个元素
- 如何激活下拉菜单:在一个元素上单击768px宽度下方,在另一个元素上将鼠标悬停在768px上方
- Pixijs将元素附加到另一个元素
- 将SVG元素拖动到另一个SVG元素上
- JavaScript:将输入范围行为链接到另一个元素