Создайте узел и добавьте его как одноуровневый узел перед другим одноуровневым с 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 ответ
После создания узла как ребенка, я должен был переместить узел, и он работал... конечно, код все еще нуждается в некоторых нулевых проверках;-)
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);