У меня есть дерево и кнопка. При нажатии кнопки в древовидную структуру добавляется элемент:
function addItem(container, item)
{
var parent = container || this.tree; //'this' is pointing to an object, not to the button
//Replace item by node
if(parent.type == 'item')
{
var ancestor = parent.parent;
var name = parent.text;
ancestor.remove(this.tree.selection);
parent = ancestor.add('node', name);
}
var node = parent.add(item.type, item.text);
node.expanded = item.expanded;
node.selected = item.selected;
//this.expandParentNodes(node); <---Implementation below
}
Элементы созданы, но дерево сворачивает все узлы после создания, поэтому я реализовал эту функцию и вызвал ее в конце addItem:
function expandParentNodes(item) {
if(item.parent != this.tree)
{
item.parent.expanded = true;
this.expandParentNodes(item.parent)
}
}
После второго вызова addItem предок замененного узла разрушается. Остальные узлы все еще расширены (дети и предки). Может кто-нибудь выяснить, почему это происходит, или кто-нибудь знает обходной путь для решения этой проблемы? (Я работаю на Windows)