I\'m stuck with jsTree here. So far it works and i can browse and expand nodes with the [+] icon and open pages when clicking a node, BUT i still want it to expand all the immed
With a newer version of jsTree (3.0.0 according to jsTree.js), i had to change the code provided by @justind a bit to work:
$("#jstree").bind("select_node.jstree", function (e, data) {
return data.instance.toggle_node(data.node);
});
I use this (casoUso is the page linked, fInvocaCasoUso is a function to make the call).
$("#demo1").bind("select_node.jstree", function (e, data)
{
if (data.rslt.obj.attr("casoUso")!=undefined)
{
fInvocaCasoUso(data.rslt.obj.attr("casoUso"));
}
else
{
$("#demo1").jstree("toggle_node",data.rslt.obj);
}
});
If the node has a link, it opens, if not, the sub-tree is opened. Anyway, you should be able to combine both sides of "if" to open the branch and execute your link. Maybe executing:
$("#demo1").jstree("toggle_node",data.rslt.obj);
fInvocaCasoUso(data.rslt.obj.attr("casoUso"));
Would do it...
You need to bind to select_node.jstree and call toggle_node on the tree instance when it's triggered:
For jsTree versions < 3.0:
$("#your_tree").bind("select_node.jstree", function(event, data) {
// data.inst is the tree object, and data.rslt.obj is the node
return data.inst.toggle_node(data.rslt.obj);
});
For jsTree versions >= 3.0
$("#your_tree").bind("select_node.jstree", function (e, data) {
return data.instance.toggle_node(data.node);
});