/*
     * 전체 선택 클릭시 하위에 있는 체크박스 설정
 */
$("li.active input[name=checkbox]").click(function() {
	setCheckbox('div.lnb ul li input[name=checkbox]',$(this).is(':checked'));
});
		
/*
* 상위체크박스 선택시 하위 체크박스 선택
 */
$("li.hasSub input[name=checkbox]").click(function() {
	setCheckbox('li.sub input[name=checkbox]',$(this).is(':checked'));
});

/*
* 전체 체크박스를 제외한 모든 체크박스가 선택/해제 되었을때 전체체크박스 설정
 */
$("li:not(.active) input[name=checkbox]").click(function() {
	var flag = allCheckReturn("li:not(.active) input[name=checkbox]");
	setCheckbox("li.active input[name=checkbox]",flag);
});

/*
 * 상위 체크박스가 하위체크박스가 전체 선택/해제 된 상태에 따라 변경
 */
$("li.sub input[name=checkbox]").click(function() {
	var flag = allCheckFlagReturn("li.sub input[name=checkbox]");
	setCheckbox("li.hasSub input[name=checkbox]",flag);
			
	flag = allCheckFlagReturn("li:not(.active) input[name=checkbox]");
	setCheckbox("li.active input[name=checkbox]",flag);
});

/* 
 * 
 * 체크박스 트리구조 체크
 * 
 * 사용법 : $('#테이블 ID').colspan (0);
 * 
 */ 
allCheckFlagReturn = function(obj) {
	var flag = false;
	$(obj).each(function(){
		if (!$(this).is(':checked')) {
			flag = true;
		}
	});
	return !flag
}
/* 
 * 
 * 체크박스 선택/해제
 * 
 * 사용법 : $('#테이블 ID').colspan (0);
 * 
 */ 
setCheckbox = function(obj,flag) {
  if (flag) {
	  $(obj).prop('checked',true);
  }else{
	  $(obj).prop('checked',false);
  }
}

'IT > jquery' 카테고리의 다른 글

jquery swiper  (0) 2016.11.28
특정영역 웹페이지 프린트  (0) 2016.11.26
테이블 행,열 병합  (0) 2016.11.19
여러개 input 박스 초기화  (0) 2016.11.06
datepicker  (0) 2016.11.05