중첩 목록의 트리 구조가 있습니다. 사용자가 클릭 할 때까지 중첩 된 목록을 숨기려고하므로 toggle()을 호출합니다. 내가 클릭하면 순간 http://jsfiddle.net/kuv4tkqv/목록 트리 구조가 작동하지 않음
: 가 여기 내 코드입니다 :
var $list = $('#subject-list');
var data = [
{ name: "A" },
{ name: "B" },
{ name: "C" },
{
name: "G",
children: [
{
name: "D",
children: [
{ name: "1" },
{ name: "2" },
{ name: "3" }
]
},
{ name: "E" },
{ name: "F" }
]
}
];
var populateSubjectTree = function (data, list) {
for (var i = 0; i < data.length; i++) {
if (typeof (data[i].children) !== "undefined") {
var listItem = $('<li class="no-style"><input class="checkbox-he" type="checkbox"><label class="label-pointer"> ' + data[i].name + ' <span class="glyphicon glyphicon-collapse-down"></span></label><ul class="has-children collapse"></ul></li>');
list.append(listItem);
var childList = listItem.find('ul');
populateSubjectTree(data[i].children, childList);
} else {
var listItem = $('<li class="no-style"><input class="checkbox-he" type="checkbox"><label> ' + data[i].name + '</label></li>');
list.append(listItem);
}
}
list.find('label').click(function() {
if ($(this).siblings('ul').length > 0) {
console.log($(this).siblings('ul'));
$(this).siblings('ul').toggle();
}
})
};
트리의 최상위 목록 항목에 대한 미세하지만 낮은 수준의 것들에 대한 작동하는 것 같다, 여기 jsfiddle입니다 항목 G는 괜찮지 만 중첩 된 요소에는 없습니다. D. 문제는 무엇입니까?
그래서 G를 클릭하고 자녀를 토글하고 싶습니까? –
잘 클릭하면 G는 직접적인 자녀 만 토글해야합니다. 그런 다음 D를 클릭하면 직접적인 하위 항목도 전환해야합니다. 그래서 그들은 어떤면에서 서로 독립적입니다. – user3281466