Open branch when clicking on a node? Open branch when clicking on a node? jquery jquery

Open branch when clicking on a node?


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);});


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...