點選tr實現選擇checkbox功能,點選checkobx的時候阻止冒泡事件
阿新 • • 發佈:2019-02-09
給tr新增點選事件,使用find方法查詢tr下的所有層級的元素,children只查詢下一層級的元素,所以使用find。
find的返回值為jquery物件,在這個專案中不知道為什麼使用jquery給checkbox新增checked屬性或去掉checked屬性不能使checkobx改變狀態,所以我就把jquery物件轉換為DOM物件,怎麼轉呢?jquery物件[0]或者get(0)就轉換成DOM物件,然後直接.checked返回true或false就可以判斷checkbox是否選中了。然後判斷狀態,改變狀態。
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();
});