계단식 체크을 확인란이있는 중첩 목록에 구현하려고합니다.중첩 된 확인란으로 계단식 검사
ᾠῗᵲᄐᶌ에서 this answer을 사용하고 있습니다.
주어진 노드의 부모를 확인/선택 해제하는 데 문제가 있습니다. 나는 모든 부모를 검사 할 수 있지만 주먹 만 선택을 취소하고 내가 뭘 잘못하고 있는지 알 수 없다.
HTML
<ul>
<li>
<a href="#">
<input type="checkbox"><span>NODE A</span>
</a>
<ul>
<li>
<a href="#">
<input type="checkbox"><span>NODE A1</span>
</a>
<ul></ul>
</li>
<li>
<a href="#">
<input type="checkbox"><span>NODE A2</span>
</a>
<ul></ul>
</li>
<li>
<a href="#">
<input type="checkbox"><span>NODE A3</span>
</a>
<ul>
<li>
<a href="#">
<input type="checkbox"><span>NODE A3a</span>
</a>
<ul></ul>
</li>
<li>
<a href="#">
<input type="checkbox"><span>NODE A3b</span>
</a>
<ul>
<li>
<a href="#">
<input type="checkbox"><span>NODE A3b1</span>
</a>
<ul></ul>
</li>
<li>
<a href="#">
<input type="checkbox"><span>NODE A3b2</span>
</a>
<ul></ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<a href="#">
<input type="checkbox"><span>NODE B</span>
</a>
<ul></ul>
</li>
<li>
<a href="#">
<input type="checkbox"><span>NODE C</span>
</a>
<ul>
<li>
<a href="#">
<input type="checkbox"><span>NODE C1</span>
</a>
<ul></ul>
</li>
<li>
<a href="#">
<input type="checkbox"><span>NODE C2</span>
</a>
<ul>
<li>
<a href="#">
<input type="checkbox"><span>NODE C2a</span>
</a>
<ul></ul>
</li>
<li>
<a href="#">
<input type="checkbox"><span>NODE C2b</span>
</a>
<ul></ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
JS
$("input:checkbox").click(function()
{
var isChecked = $(this).is(":checked");
//down
$(this).parent().next().find("input:checkbox").prop("checked", isChecked);
//up
$(this).parents("ul").prev("a").find("input:checkbox").prop("checked", function()
{
return $(this).parent("a").next("ul").find(":checked").length;
});
});
뿐인 : https://jsfiddle.net/h8hzj01q/
감사합니다. 한 가지 질문 : 내가 역방향 트릭을하지 않으면 어떻게 연결된 대답이 효과가 있었습니까? –
차이점은 상단에서 하단으로 이동하는'find'를 사용한다는 것입니다. 이 예제는 맨 아래를 가로 지르는'prev'를 사용합니다. 응답이 당신을 위해 일한 경우에 어이, 옳음으로 표시하십시오. – gaganshera