Как развернуть все дочерние узлы узла при развертывании определенного узла в igTree? - PullRequest
0 голосов
/ 02 апреля 2019

Я использую IGtree.У меня есть данные в дереве до 4 уровней в дереве.Первоначально все узлы свернуты.При развертывании какого-либо конкретного узла все его дочерние узлы должны расширяться до последнего уровня

Ответы [ 2 ]

2 голосов
/ 05 апреля 2019

Один из вариантов - обработать событие nodeExpanding, чтобы различить корневые узлы и найти их потомков, которые являются родителями. Затем разверните каждый узел и все узлы до корневого узла. Вот как фрагмент кода:

$(document).on("igtreenodeexpanding", "#tree", function (evt, ui) {
    // this ensures the expanding node is on root level.
    if (ui.node.path.indexOf(ui.owner.options.pathSeparator) <= -1) {
        // Select all the nodes whcih contain children
        // Here you can play with the path if you want to limit expanding to a certain level
        var nodes = $(ui.node.element).find("li[data-role='node'].ui-igtree-parentnode");
        for (var i = 0; i < nodes.length ; i++) {
            var node = $(nodes[i]);
            ui.owner.expand(node);
            ui.owner.expandToNode(node);
            // or you can use: 
            // $("#tree").igTree("expand", node);
            // $("#tree").igTree("expandToNode", node);
        }
    }
});

Надеюсь, это поможет.

1 голос
/ 12 апреля 2019
let nodes = $("#configTree").igTree("children", event.element);
  if(nodes) {
    nodes.forEach((node1)=>{
      $("#configTree").igTree("expand", node1.element);
    })
  }
...