zoukankan      html  css  js  c++  java
  • jquery 单击table行事件和radio的选中事件冲突

    原文地址:http://zhidao.baidu.com/link?url=HER7lu4jqejWUhWQO2nq6LZ6tf7vyhPZRADSL-xaBQSF4P4yftD9vg08Ss8HF-1I7XqrALfkRc6TdLHYQixpcK 

    2013-01-30 09:10tvogfj 分类:JavaScript | 浏览1779次
    例如:
    <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就无法实现选中了,点击周围出现一个小框,应该是事件冲突,有什么好的解决办法么?


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

    });
    提问者评价
    按照你说的,真的成功了,好开心,谢谢你!
  • 相关阅读:
    JS学习笔记-OO疑问之对象创建
    文件系统类型:
    Swift 编程语言新手教程
    数组长度计算
    tomcat配置文件server.xml具体解释
    openGL点精灵PointSprite具体解释: 纹理映射,旋转,缩放,移动
    iOS安全攻防(三):使用Reveal分析他人app
    逍遥叹
    oracle存储过程实例
    Java爬虫
  • 原文地址:https://www.cnblogs.com/niaowo/p/4075059.html
Copyright © 2011-2022 走看看