JQuery TreeView - добавить узел (ы) в середине дерева - PullRequest
1 голос
/ 25 марта 2010

Я только начинаю работать с JQuery и плагином treeview, так что это должен быть относительно простой вопрос:

Пример кода для добавления веток в дерево:

var newnodes = $("<li><span class='folder'>New Sublist</span><ul>" + 
    "<li><span class='file'>Item1</span></li>" + 
    "<li><span class='file'>Item2</span></li></ul></li>").appendTo("#browser"); 
$("#browser").treeview({ 
  add: branches 
}); 

Хорошо работает для меня, но добавляет новую ветвь в конце дерева - вместо этого я хочу иметь возможность выбрать конкретный узел и добавить к этой ветке. Мне удалось получить добавляемый узел, используя идентификатор конкретного узла вместо всего дерева в - appendTo ("nodeID") Однако я не могу заставить дерево правильно отображаться, либо с помощью:

$("nodeID").treeview({
    add: branches
});

или

$("browser").treeview({
    add: branches
});

или вызов его обоих без аргументов.

Приветствия заранее

Ответы [ 2 ]

1 голос
/ 28 марта 2011

Эй, идея очень проста:

  1. получить родительский узел узла, который вы хотите добавить.
  2. добавить новый узел к родителю и поместить его в новую переменную
  3. добавить дерево (все дерево) к новой переменной.

Проверьте код:

var parent = document.getElementById("parentId");
var newNode = $("<li> NewNode </li>").appendTo(parent);
$("#tree").treeview( { add : newNode } );

и все :) надеюсь, я помог ...

0 голосов
/ 17 октября 2014

Я сделал это, и это работает. Но Hitarea всегда видна, даже если под узлом нет детей.

//HTML file
<ul id='grandpa' class='treeview'></ul>

//JS snippet when adding a first node - pay attention to the dummy <ul></ul> at the end
var branches = $("<li><div id='dad'>Maybe-a-parent-node</div><ul></ul></li>").appendTo("#grandpa");

//JS snippet when adding some children in a middle of a tree
pNode = $("#dad").children("ul");  // get the dummy ul and add children to it
childrenHTML =  "<li>Node 1</li>"; // can add more than 1 li here
var children = $(childrenHTML).appendTo(pNode);
$(pNode).treeview({
    add: children
});

Я знаю, что этот вопрос довольно старый. Надеюсь, что это может помочь кому-то еще.

...