jsTree is a javascript based, cross browser tree component. It is packaged as a jQuery plugin.
jsTree is absolutely free (licensed same as jQuery – under both GPL and MIT – whichever suits your needs).
As of version 1.0 jsTree is extremely plugin friendly, so all functionality is now wrapped in plugins, which take care of various aspects of the tree and can be removed without affecting the functionality of other plugins. Below you will find a list of plugins - each with its own documentation page. Probably a good place to start is the core.
all core functions for manipulating the tree + basic examples of including, configuring and working with the tree, along with demos of the new event system
enables jsTree to convert nested unordered lists to interactive trees, an already existing UL may be used or data could be retrieved from a server
enables jsTree to convert JSON objects to interactive trees, data can be set up in the config or retrieved from a server
enables jsTree to convert XML objects to interactive trees (using XSL), data can be set up in the config or retrieved from a server
controls the looks of jstree - without this plugin you will get a functional tree, but it will look just like an ordinary UL list
handles selecting, deselecting and hovering tree items
handles creating, renaming, removing and moving nodes by the user, also includes cut/copy/paste functions
enables support for keyboard navigation & shortcuts, highly configurable
enables multilanguage support - each node can have multiple titles, but only one is visible
enables jstree to save the state of the tree across sessions, by saving selected and opened nodes in a cookie
enables jstree to automatically sort all nodes
using a specified function
enables drag'n'drop support for jstree, also using foreign nodes and drop targets
makes multiselection possible using three-state checkboxes
enables searching for nodes whose title contains a given string, works on async trees too
enables a multilevel context menu on tree items
each node can have a type, and you can define rules on how that type should behave
adds support for jQuery UI's themes
adds unique checking to jsTree