1. 程式人生 > >點選tr實現選擇checkbox功能,點選checkobx的時候阻止冒泡事件

點選tr實現選擇checkbox功能,點選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(); 
});