Перестроить jstree после добавления ul или li из ajax

Как мы перезагружаем jstree, если я добавляю ul / li из ajax? потому что я инициирую
JS дерево, используя уль ли ли HTML.

например мне нужно добавить li clickme

.
на первом узле. Я в идеале, хотя я просто функция append (). но, похоже, не восстановить Jstree.

<div id="tree_1">
<ul>
<li data-jstree='{ "opened" : true, "type" : "root" }'> Global - DemoFLow1
<ul>
<li data-jstree='{ "opened" : true }' li_id="1"> Default paths
<ul>
<li>
<span class="tree-name">Path 1</span>
<span class="tree-value">125 (20.00%)</span>
</li>
<li>
<span class="tree-name">Path 2</span>
<span class="tree-value">125 (20.00%)</span>
</li>
<li data-jstree='{ "type" : "btn" }'><button type="button" class="btn btn-xs grey-mint"> Add new path </button> </li>
</ul>
</li>
<li data-jstree='{ "opened" : true }' li_id="2"> Rule 1
<ul>
<li>
<span class="tree-name">Path 1</span>
<span class="tree-value">125 (20.00%)</span>
</li>
<li data-jstree='{ "type" : "btn" }'><button type="button" class="btn btn-xs grey-mint"> Add new path </button> </li>
</ul>
</li>
<li data-jstree='{ "type" : "btn" }'><button type="button" class="btn btn-xs grey-mint"> Add new rule </button></li>
</ul>
</li>
</ul>
</div>var tree = $('#tree_1').jstree({
"core" : {
"themes" : {
"responsive": false
}
},
"types" : {
"default" : {
"icon" : "fa fa-circle-o"},
"path" : {
"icon" : "fa fa-circle-o"},
"root" : {
"icon" : "fa fa-circle"},
"btn" : {
"icon" : "fa fa-plus"}
},
"plugins": ["types"]
});

0

Решение

В основном вы должны использовать в вашем коде обратного вызова ajax, как показано ниже.

Это добавляет новый узел к корню дерева:

$('#tree_1').jstree().create_node( '#',  "New node");

Чтобы добавить некоторые значения атрибутов, вы должны использовать:

$('#tree_1').jstree().create_node( '#',  { "id": "newid", "name": "New node", "type" : "btn", "li_attr": { "attr1": "value of attr1", "attr2": "value of attr2"}})

Чтобы добавить новый узел к другому узлу, кроме root, вам нужно заменить # с этим идентификатором узла.

Точное использование будет зависеть от того, что вы получите как ajax-ответ от сервера.

Также проверьте демо — скрипка

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]