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

Posted djiz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了点击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

 

 

以上是关于点击tr实现选择checkbox功能,点击checkobx的时候阻止冒泡事件, jquery给checkbox添加checked属性或去掉checked属性不能使checkobx改变状态的主要内容,如果未能解决你的问题,请参考以下文章

jQuery点击tr实现checkbox

android中的checkBox如何实现单选

点击TR行,用js实现删除,怎么实现

java 点击按钮判断checkbox选择是不是为空,为空跳出提示框并返回之前页面,不为空进行下一步

jquery 点击tr选中checkbox,解决checkbox的默认点击事件被阻止的问题

js点击行选中checkbox