Here you have a simple implementation of a file system tree with the most features available to be changed at the runtime from the interface. You can find a simple PHP implementation in the download but any server-side language can be used because aciTree needs the data in JSON format and it's using AJAX to load the children of a inner node (once they are needed).

Note: I recommend checking the code from the other demos as this page can be complex for someone new to aciTree. Also, do not forget to check the API docs before you try using the methods and also check online on the plugin page for extra info (like init options and using the events).

Start here first if you are new to aciTree (check using the API demos for a detailed introduction to aciTree)

See a checkbox tree demo here

See a radio-button tree demo here

See a multiple column tree demo here

See how you can change the column width and toggle columns here

Save/restore items state (open/closed/selected) using local storage demo here

Select/open items based on the variables stored in the URL fragment demo here

See how you can use the drag & drop events to sort the tree items and limit the draggable items / drop targets here

See how you can add a tooltip for each tree item here

See how you can use a custom tree data structure here

(new) See a demo with a custom/multiple data sources here

See how you can use a custom filter/search here

See a demo with a full-sized tree container here

Note: in the demo below - the node loading it's made with a delay so you can see the loading animation. If you want you can remove the delay from the PHP script ...

Hover over a tree item to show his info (using the aciTree API) ...

see the JSON behind this tree
Anything here or just remove

Filter: (note)

Use Animations:

Expand All:

Collapse All:

Unique on Open:

Empty on Close:


(new) Multi-Selectable

Full Row:

Text Selection:



Chain Checkboxes:

Checkbox Break:

Checkbox-Only Click:

Radio Buttons:

Chain Radio Buttons:

Radio Button Break:

Radio-Only Click:


Select a Tree item or the Tree itself (note)!


(new) Size:

(new) Node Button:

(update) Show Branches:


Odd/Even Rows:

Set Icon:

Set Checkbox:

Set Radio:

Item: (new) (note)


Burn some CPU:

Using 'branch':

Search ID:

Search Params:

Move Item:

Move Before/After/As Child (by ID):

Set Index:

Swap Item (by ID):

Cancel UI Tasks :

Cancel User-Defined Tasks :

Serialize (see the log):

Tree Log... clear log

Test JavaScript code performance:
(see the log for output)

Note: the selected pink item does not have anything to do with the selectable option, it's there just to be able to 'select' the entire tree (not only a item).
All item based functions are made - in this demo - to run against the pink selected item (and not the real selected item - when/if the selectable option is used).

Note: for this demo I have changed the default style from `display:none` for `.aciTreeHidden` so you can have a chance to show again a hidden item. The `hidden` items will have a darker background.