Подтвердить что ты не робот

Удалить все узлы в jsTree

Есть ли способ очистить все узлы от jsTree быстрее, чем прохождение через все узлы, удаляющие их один за другим?

4b9b3361

Ответ 1

Смотрите документацию здесь: http://www.jstree.com/documentation/core

.delete_node (node)

Удаляет node. Запускает событие.

mixed node

Это может быть DOM node, jQuery node или селектор, указывающий на элемент, который вы хотите удалить.

Кажется, вы можете просто сделать селектор, который удалит все нужные вам узлы, не требуется никаких циклов.

Ответ 2

Самый простой способ, который я нашел, - просто вызвать .empty в div, содержащем дерево.

$('#tree').empty();

Вы можете использовать более специфичный селектор в качестве параметра для empty(), но это отлично работает для меня.

Ответ 3

$('#tree').jstree("destroy").empty();

Это то, что сработало для меня. Сначала уничтожьте элементы jstree и связанные с ним события, а затем удалите div, содержащий jstree.

Ответ 4

Вызвать .remove(node) в корневых узлах.

Ответ 5

Следующий вызов уничтожит текущий экземпляр jsTree, удалит все прослушиватели связанных событий и, очевидно, достигнет вашей конечной цели - удалить все узлы. Но этот метод немного завышен, это нужно сказать.

$("#DivElementContainingYourTree").jstree("init");

Ответ 6

$('#jstree').parent().html('<div id="#jstree"></div>');

Ответ 7

myTree.delete_node(myTree.get_node("#").children);