我有一个树状视图和一个按钮。单击该按钮时,会将一个项目添加到树视图中:
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上工作)