Я построил расширяющийся древовидный список, используя bootstrap collapse.. (Без аккордеона,, который, кажется, редок, который я узнал при попытке Google). Первая проблема, с которой я столкнулся, заключалась в том, что открытая/закрытая позиция каждого элемента на странице reload не была записана и поэтому должна быть сохранена используя локальное хранилище. Легко.Как изменить Bootstrap Свернуть с уникальным идентификатором для открытого и закрытого состояния на странице перезагрузки
Следующая проблема заключается в том, что каждый элемент дерева действует индивидуально и не запоминает позицию друг друга. Таким образом, нам нужно создать уникальный идентификатор для открытого и закрытого состояний для каждого человека, чтобы они не открывались и не закрывались вместе.
UPDATE:
Благодаря SPViradiya для обеспечения этого простого решения, сочетающее как открытый, закрытый и вращающейся стрелки, с небольшой HTML и CSS.
https://jsfiddle.net/SPViradiya/nm6tqxsL/1/
$(document).ready(function() {
var getUniqueID = localStorage.getItem('uniqueid');
if(typeof getUniqueID == "string")
{
var parsedUID = JSON.parse(getUniqueID);
if(parsedUID != "" && typeof parsedUID == "object")
{
for(item in parsedUID)
{
if(parsedUID[item])
{
$("#"+item).collapse('show');
console.log($("div[href='#"+item+"']"));
$("div[href='#"+item+"']").addClass('rotateOn');
}
else
{
$("#"+item).collapse('hide');
$("div[href='#"+item+"']").removeClass('rotateOn');
}
}
}
}
$('.expand').click(function() {
//store the id of the collapsible element
$(this).toggleClass('rotateOn');
setTimeout(function(){
var uniqueid = {};
$('.expand').each(function(){
var getID = $(this).attr('href').replace(/#/g,'');
uniqueid[getID] = $("#"+getID).hasClass('in');
});
localStorage.setItem('uniqueid', JSON.stringify(uniqueid));
},500);
});
})
Можете ли вы получить нам некоторые HTML структуру? Я думаю, вам нужно будет хранить все дочерние элементы родительского идентификатора с необходимым статусом в формате json и прокручивать их при загрузке. – SPViradiya
Благодарим за быстрый ответ - я добавил HTML. Хорошо, не могли бы вы уточнить? – Crashtor
Можете ли вы показать свой расширяющийся список деревьев в качестве рабочей демонстрации? Вы можете создать соответствующий фрагмент кода для предоставления демонстрации. Или просто код вашего дерева, вставленный в ваш вопрос. [help] (http://stackoverflow.com/help/mcve) – sabithpocker