zoukankan      html  css  js  c++  java
  • 点击tr实现选择checkbox功能,点击checkobx的时候阻止冒泡事件, jquery给checkbox添加checked属性或去掉checked属性不能使checkobx改变状态

     给tr添加点击事件,使用find方法查找tr下的所有层级的元素,children只查找下一层级的元素,所以使用find。
    find的返回值为jquery对象,在这个项目中不知道为什么使用jquery给checkbox添加checked属性或去掉checked属性不能使checkobx改变状态,所以我就把jquery对象转换为DOM对象,怎么转呢?jquery对象[0]或者get(0)就转换成DOM对象,然后直接.checked返回true或false就可以判断checkbox是否选中了。然后判断状态,改变状态。

    $("tr").click(function(e){  

        var check = $(this).find("input[type='checkbox']");  

        if(check){  

            var flag = check[0].checked;  

            if(flag){  

                check[0].checked = false;  

            }else{  

                check[0].checked = true;  

            }  

        }  

    });   

    到这还没有结束,当点击checkbox的时候出现了问题。是因为点击checkbox的时候同时也点击了tr,所以checkbox的状态只是闪一下,没有改变。要解决这个问题使用下面代码就可以实现。给checkbox添加阻止冒泡事件,三行代码就搞定了。

     

    $("input[type='checkbox']").click(function(e){  

       e.stopPropagation();   

    });  

     

    解决 jquery给checkbox添加checked属性或去掉checked属性不能使checkobx改变状态  除了转换成dom外还可以

    $(".list-msg li").click(function(){
         obj=$(this).find("input[type=checkbox]");
         //alert(obj.is(":checked"))
         if(obj.is(":checked")){
           obj.prop("checked", false)
         }else{
        obj.prop("checked", true)
         }
     })

    jquery 1.6以上版本 设置boolean值的属性时要用prop。而不是attr

     

  • 相关阅读:
    MVC3基础嵌套总结
    List之Union(),Intersect(),Except() 亦可以说是数学中的并集,交集,差集
    sqlserver查询记录数某个区间内记录
    各语言的unix时间戳 【转】
    SQLserver删除某数据库中所有表
    C#日期格式转换大全
    【转】Linq之动态排序(字符传入)
    谈谈Equals和GetHashcode
    JS常用代码收集
    ROW_NUMBER()、RANK()、DENSE_RANK()、NTILE(N)
  • 原文地址:https://www.cnblogs.com/djiz/p/6414325.html
Copyright © 2011-2022 走看看