# jsTree - jquery tree plugin

## Description

### jsTree:

- ♦ is a javascript based, cross browser tree component. It is packaged as a jQuery plugin.
- ♦ is absolutely free (licensed same as jQuery – under the terms of either the MIT License or the GPL v2 License).
- ♦ is a one man project and relies on its great community for feature requests & bug reports. Join in!
- ♦ passes jslint validation, minifies nicely and does not modify the global scope in any way.
- ♦ uses plugins so feel free to remove any plugins you do not use (for an even smaller download) or create your own plugins.

### Features at a glance

- Various data sources - HTML, JSON, XML
- Supports AJAX loading
- Drag & drop support
- Highly configurable
- Theme support + included themes
- Uses jQuery's event system
- Optional keyboard navigation
- Maintain the same tree in many languages
- Inline editing
- Open/close optional animation
- Define node types and fine tune them
- Configurable multitree drag & drop
- Optional checkbox tree support
- Search function
- Supports plugins
- Optional state saving using cookies
- RTL support
- Optional sorting / unique management

if you like the project - consider supporting jstree.

## Plugins documentation

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.

- Core functionality

  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

- HTML_DATA plugin

  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

- JSON_DATA plugin

  enables jsTree to convert JSON objects to interactive trees, data can be set up in the config or retrieved from a server

- XML_DATA plugin

  enables jsTree to convert XML objects to interactive trees (using XSL), data can be set up in the config or retrieved from a server

- Themes plugin

  controls the looks of jstree - without this plugin you will get a functional tree, but it will look just like an ordinary UL list

- UI plugin

  handles selecting, deselecting and hovering tree items

- CRRM plugin

  handles creating, renaming, removing and moving nodes by the user, also includes cut/copy/paste functions

- Hotkeys plugin

  enables support for keyboard navigation & shortcuts, highly configurable

- Languages plugin

  enables multilanguage support - each node can have multiple titles, but only one is visible

- Cookies plugin

  enables jstree to save the state of the tree across sessions, by saving selected and opened nodes in a cookie

- Sort plugin

  enables jstree to automatically sort all nodes
  using a specified function

- DND plugin

  enables drag'n'drop support for jstree, also using foreign nodes and drop targets

- Checkbox plugin

  makes multiselection possible using three-state checkboxes

- Search plugin

  enables searching for nodes whose title contains a given string, works on async trees too

- Contextmenu plugin

  enables a multilevel context menu on tree items

- Types plugin

  each node can have a type, and you can define rules on how that type should behave

- Themeroller plugin

  adds support for jQuery UI's themes

- Unique plugin

  adds unique checking to jsTree

- Wholerow plugin

  enhances UIs select & hover functions