點擊tr實現選擇checkbox功能,點擊checkobx的時候阻止冒泡事件, jquery給checkbox添加checked屬性或去掉checked屬性不能使checkobx改變狀態

來源:互聯網
上載者:User

標籤:ati   代碼   方法   box   dom   狀態   jquer   boolean   ring   

 給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改變狀態

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.