jsTree
jsTree is jquery plugin, that provides interactive trees. jsTree is easily extendable, themable and configurable, it supports HTML & JSON data sources and AJAX loading.
You can see more details from here.
Basic
Make a container div
and insilize js
tree on it. then use ul
for tree list,
also nested ul
for nested tree.
-
Root node 1
- Child Node
- Initially selected
-
initially open
- Disabled Node
- Another node
- Root node 2
Code Example
<div id="basic-tree"> <ul> <li> Root node 1 <ul> <li> Child Node </li> <li data-jstree='{ "selected" : true }'> Initially selected </li> <li data-jstree='{ "opened" : true }'> initially open <ul> <li data-jstree='{ "disabled" : true }'> Disabled Node </li> <li data-jstree='{ "type" : "file" }'> Another node </li> </ul> </li> </ul> </li> <li data-jstree='{ "type" : "file" }'> Root node 2 </li> </ul> </div>
Custom Icon
you can use custom options in list item with
data-jstree
attribute. like this
data-jstree='{ "icon" : "icon ni
ni-calendar-fill" }'
value for that icon must be classes to display or
style that icon.
-
Root node 1
- Child Node
- Initially selected
-
initially open
- Disabled Node
- Another node
- Root node 2
Code Example
<div id="custom-icon-tree"> <ul> <li> Root node 1 <ul> <li> Child Node </li> <li data-jstree='{ "selected" : true, "icon" : "icon ni ni-calendar-fill text-info" }'> Initially selected </li> <li data-jstree='{ "opened" : true }'> initially open <ul> <li data-jstree='{ "disabled" : true , "icon" : "icon ni ni-archive-fill" }'> Disabled Node </li> <li data-jstree='{ "type" : "file" }'> Another node </li> </ul> </li> </ul> </li> <li data-jstree='{ "type" : "file", "icon" : "icon ni ni-puzzle-fill text-success" }'> Root node 2 </li> </ul> </div>
Context Menu
For content menu, you just need to include
contextmenu
in plugins option. For more
information please check
jsTree Plugin Page
Code Example
<div id="context-menu-tree"> <ul> <li> Root node 1 <ul> <li> Child Node </li> <li data-jstree='{ "selected" : true }'> Initially selected </li> <li data-jstree='{ "opened" : true }'> initially open <ul> <li data-jstree='{ "disabled" : true }'> Disabled Node </li> <li data-jstree='{ "type" : "file" }'> Another node </li> </ul> </li> </ul> </li> <li data-jstree='{ "type" : "file" }'> Root node 2 </li> </ul> </div>
Drag and Drop
To activate drag and drop option, you just need to
include dnd
in plugins option. For more
information please check
jsTree Plugin Page
-
Root node 1
- Child Node
- Initially selected
-
initially open
- Disabled Node
- Another node
- Root node 2
Code Example
<div id="drag-drop-tree"> <ul> <li> Root node 1 <ul> <li> Child Node </li> <li data-jstree='{ "selected" : true }'> Initially selected </li> <li data-jstree='{ "opened" : true }'> initially open <ul> <li data-jstree='{ "disabled" : true }'> Disabled Node </li> <li data-jstree='{ "type" : "file" }'> Another node </li> </ul> </li> </ul> </li> <li data-jstree='{ "type" : "file" }'> Root node 2 </li> </ul> </div>
Checkbox
To activate checkbox option with full row selection,
you just need to include wholerow
and
checkbox
in plugins option. For more
information please check
jsTree Plugin Page
-
Root node 1
- Child Node
- Initially selected
-
initially open
- Disabled Node
- Another node
- Root node 2
Code Example
<div id="checkbox-tree"> <ul> <li> Root node 1 <ul> <li> Child Node </li> <li data-jstree='{ "selected" : true }'> Initially selected </li> <li data-jstree='{ "opened" : true }'> initially open <ul> <li data-jstree='{ "disabled" : true }'> Disabled Node </li> <li data-jstree='{ "type" : "file" }'> Another node </li> </ul> </li> </ul> </li> <li data-jstree='{ "type" : "file" }'> Root node 2 </li> </ul> </div>