jsTree Open a branch

后端 未结 8 755
长发绾君心
长发绾君心 2021-02-02 11:07

I am using the JQuery plugin jsTree, http://www.jstree.com/ I am able to expand the whole tree with the following method:

$(\"#tree\").jstree(\"open_all\");


        
相关标签:
8条回答
  • 2021-02-02 11:44

    Try this code to open node till nth Level

    $("#myTree").jstree({options}).bind('loaded.jstree', function (e, data) {
        /** 
         * Open nodes on load (until x'th level) 
         */
        var depth = 3;
        data.inst.get_container().find('li').each(function (i) {
            if (data.inst.get_path($(this)).length <= depth) {
                data.inst.open_node($(this));
            }
        });
    });
    
    0 讨论(0)
  • 2021-02-02 11:46

    Your code for open branch is correct.

    For example. Source of tree:

        <div id="treeTask">
           <ul>
              <li id="node_37"><a href="#">TEST1</a>
                  <ul>
                      <li id="node_38"><a href="#">TEST2</a></li>
                      <li id="node_39"><a href="#">TEST3</a></li>
                  </ul>
              </li>
          </ul>
       </div>
    

    Open node:

    $("#treeTask").jstree("open_node", $("#node_38"));
    
    0 讨论(0)
  • 2021-02-02 11:46

    None of previous worked for me, so I have created this code, and it works like a charm :)

    $('#tree').on('open_node.jstree', function (event, data) { 
        if(data.node.parent !== "#") { 
            data.instance.open_node(data.node.parent); 
        } 
    });
    
    0 讨论(0)
  • 2021-02-02 11:51

    i found Ted's code working, but had to change it a bit:

     $('#jsTree').bind("open_node.jstree", function (event, data) { 
          if((data.inst._get_parent(data.rslt.obj)).length) { 
            data.inst.open_node(data.inst._get_parent(data.rslt.obj), false,true); 
          } 
        });
    
    0 讨论(0)
  • 2021-02-02 11:55
        // Expand pasted, dragged and dropped node for jstree 3.3.1
            var objtree = $('#jstree');
            objtree.bind('paste.jstree', function(e, d) { objtree.jstree('open_all', '#' + d.parent); });
            $(document).bind('dnd_move.vakata', function(e, d) { objtree.jstree('open_all', $(d.event.target).closest('.jstree-node').attr('id')); });
            $(document).bind('dnd_stop.vakata', function(e, d) { objtree.jstree('open_all', $(d.event.target).closest('.jstree-node').attr('id')); });
    
    0 讨论(0)
  • 2021-02-02 11:56

    You could use the binding

    $("#tree").bind("open_node.jstree", function (event, data) { 
      if((data.inst._get_parent(data.rslt.obj)).length) { 
        data.inst._get_parent(data.rslt.obj).open_node(this, false); 
      } 
    }); 
    
    0 讨论(0)
提交回复
热议问题