jquery 单击table行事件和radio的选中事件冲突

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery 单击table行事件和radio的选中事件冲突相关的知识,希望对你有一定的参考价值。

例如:
<tr class="resultTr">
<td><inputtype="radio"name="checkbox" id="$personId" value="0"/>
<td>张三<td>
<td>女<td>
</tr>
用jquery为行绑定事件,方便操作,单击行就可以选中radio,获取传递到后台;
$(".resultTr").bind("click",function()
var checkObj = $(this).children().eq(0).children().eq(0);
if(checkObj.attr('checked')==undefined)
checkObj.attr('checked',true);
else
checkObj.attr('checked',false);

);

功能能够实现,可是如果这时单击一行中的radio就无法实现选中了,点击周围出现一个小框,应该是事件冲突,有什么好的解决办法么?

参考技术A 首先你写的这个就有问题,你点击radio的时候实际上已经选中了,但事件冒泡到了tr,又执行了一次click事件,所以就造成了选不中的情况,此外,单选框不像复选框,没必要判断是否处于选中状态,代码可以优化成这样:
$("tr.resultTr").bind("click",function()
$(this).find("input:radio").attr("checked","checked")

);本回答被提问者采纳
参考技术B 观望学习中 参考技术C 阻止radio的click事件冒泡

以上是关于jquery 单击table行事件和radio的选中事件冲突的主要内容,如果未能解决你的问题,请参考以下文章

jquery 获取radio的选中事件,radio默认选中时,显示其中一行tr,选中另外一个radio时,显示不同的tr记录

使用 jquery 在收音机上单击或更改事件

jquery单选框radio绑定click事件实现和是否选中的方法

js中table的关于选中某一行的问题

jquery怎么自动触发radio的点击事件

jquery radio改变时没有触发on的change事件,是为啥