创建一个节点并将其作为兄弟节点添加到具有dynatree的另一个兄弟节点之前

时间:2012-11-24 22:52:32

标签: dynatree jquery-dynatree

我想以编程方式创建一个新节点。 然后我想在另一个节点之前添加它作为兄弟。

此代码不起作用:

var node = $("#TreeDiv").dynatree("getActiveNode");
var nextSiblingNode = node.getNextSibling();
var childNode = node.addChild({ title: response.title, key: response.unitId }, nextSiblingNode);

我错了什么?

更新:

这是我用上面的代码得到的例外:

Unhandled exception at line 4, column 20662 in http://localhost:1726/Scripts/jquery.dynatree.min.js

0x800a139e - runtime error in JavaScript: <beforeNode> must be a child of <this>

1 个答案:

答案 0 :(得分:1)

作为孩子创建节点后,我不得不移动节点并且它工作了......当然代码仍然需要一些空检查; - )

var newNode = { title: response.title, key: response.unitId };
var activeNode = $("#TreeDiv").dynatree("getActiveNode");
var nextSiblingNode = activeNode.getNextSibling();
if (nextSiblingNode != null) {
    newNode = activeNode.addChild(newNode);
    newNode.move(nextSiblingNode, 'before');
}
else
{                      
    var parentNode = activeNode.getParent();
    newNode = parentNode.addChild(newNode);
}
newNode.activate(true);
newNode.focus(true);