How do I open all nodes in jquery Jstree?
The jsTree documentation is "sub optimal". The docs don't clearly state that the initialization works asynchronously. There's core.loaded():
A dummy function, whose purpose is only to trigger the loaded event. This event is triggered once after the tree's root nodes are loaded, but before any nodes set in initially_open are opened.
This suggests an event loaded.jstree
is fired after the tree is setup. You can hook into that event to open all your nodes:
var $treeview = $("#treeview");$treeview .jstree(options) .on('loaded.jstree', function() { $treeview.jstree('open_all'); });
I am using version 3 of jstree and Chrome. The loaded event did not work for me, but the ready event did, even after the jstree instance was created:
$('#treeview').on('ready.jstree', function() { $("#treeview").jstree("open_all"); });
http://www.jstree.com/api/#/?q=.jstree%20Event&f=ready.jstree
If you want open all node when tree loaded:
$("#treeview") // call `.jstree` with the options object .jstree({ "plugins" : ["themes", "html_data","ui","crrm","sort"] }) .bind("loaded.jstree", function (event, data) { // you get two params - event & data - check the core docs for a detailed description $(this).jstree("open_all"); }) });