Öffnen Sie einen Knoten und alle seine Eltern mit jstree
Ich versuche, jstree und lassen Sie sich von einem node und allen seinen übergeordneten geöffnet werden, wenn die Seite geöffnet wird. Hier ist der html-code, den ich verwendet, um zu testen.
<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>
<ul>
<li id="node_3"><a href="#">TEST1</a>
<ul>
<li id="node_4"><a href="#">TEST2</a></li>
<li id="node_6"><a href="#">TEST3</a></li>
</ul>
</li>
</ul>
</div>
Und hier ist der Aufruf von initialize jstree und öffnen Sie den Knoten.
$(function () {
$("#treeTask").jstree();
$("#treeTask").bind("ready.jstree", function (event, data) {
$("#treeTask").jstree("open_node", $("#node_4"));
if((data.inst._get_parent(data.rslt.obj)).length) {
data.inst._get_parent(data.rslt.obj).open_node(this, false);
}
});
});
Ich habe Bearbeiten des Codes für eine Weile, aber konnte nicht damit es funktioniert. Ich wäre wirklich dankbar, wenn jemand helfen kann.
Vielen Dank!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die integrierte-in
_open_to
Funktion:http://www.jstree.com/api/#/?q=open_to&f=_open_to%28obj%29
Basierend auf @maddin Lösung habe ich aktualisiert, es unterstützt eine beliebige Anzahl von übergeordneten Ebenen.
jsFiddle
Es sollte angemerkt werden, dass, wenn ein Knoten ausgewählt ist, werden alle Eltern automatisch geöffnet. Wäre dies etwas mit der obigen äquivalent:
$("#treeTask").jstree('open_node', e.parents);
ohnefor
Schleife, weil array von ids übergeben werden, dieopen_node
FunktionVielleicht ist das eine Lösung für dein problem:
fiddle