jsTree开设分行

我正在使用JQuery插件jsTree, http://www.jstree.com/我可以使用以下方法扩展整个树:

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

还有一个特定的节点:

 $("#tree").jstree("open_node", $('#childNode')); 

我很难打开树的一个分支,打开分支打开它很好,但如果它有一个就不打开它的父。

有没有人用jsTree成功完成这项工作? 如果您需要更多信息,请告诉我。

谢谢

EEF

你可以使用绑定

 $("#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); } }); 

您的开放分支代码是正确的。

例如。 树的来源:

   

开放节点:

 $("#treeTask").jstree("open_node", $("#node_38")); 

尝试使用此代码打开节点直到第n级

 $("#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)); } }); }); 

这是可以打开特定节点及其所有父节点的函数。

 function expandNode(nodeID) { // Expand all nodes up to the root (the id of the root returns as '#') while (nodeID != '#') { // Open this node $("#jstree").jstree("open_node", nodeID) // Get the jstree object for this node var thisNode = $("#jstree").jstree("get_node", nodeID); // Get the id of the parent of this node nodeID = $("#jstree").jstree("get_parent", thisNode); } } 

我发现Ted的代码有效,但不得不改变一下:

  $('#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); } }); 

如果你使用json,只需使用它

 $("#treeId").on ('loaded.jstree', function() { $("#treeId").jstree("open_node", $("#nodeId")); }); 

以前都没有为我工作,所以我创建了这个代码,它就像一个魅力:)

 $('#tree').on('open_node.jstree', function (event, data) { if(data.node.parent !== "#") { data.instance.open_node(data.node.parent); } }); 
  // 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')); });