As a Content Management System developer, having a good tree plugin is key to organizing files in directories. With a small number of folders, any jQuery tree plugin will suffice. But, I’ve encountered some limitations with 1000+ folders and Internet Explorer compatibility.
Dynatree
Dynatree is my current favorite jQuery plugin. The code is maintained with very good browser compatibility (IE 8 works without any problems), excellent documentation, and lots of features. Supports checkboxes, drag and drop, persistence, and HTML/JSON/or Javascript data loads. If you have a large number of folders, it is best to use JSON as the data object since you can use AJAX to dynamically load the lists. Even without the “lazy load” option, the script runs fast with a single load of the JSON data.
Download | Demo | Documentation
jsTree
jsTree is one of the more popular plugins, but I have had issues with Internet Explorer 7/8 compatibility. The plugin works great in Internet Explorer 9, Firefox, Chrome, and Safari though. In Internet Explorer 8, JSTree will error out with a “stop running this script” javascript message if you have a large number of folders. If you don’t plan to run many folders in the tree, JSTree is a good choice with its features and community. Data load via AJAX, JSON compatibility, and drag and drop features name a few of the cool features.
Download | Demo | Documentation
jQuery Tree Control
jQuery-Tree-Control is a great option for a lightweight jQuery tree script. Excellent cross-browser compatibility, small footprint, and easy to implement. The major limitation is persistence, so it doesn’t save the last folder open on refresh. I originally used this plugin for my project, but needed a few more features that the other two plugins have.
Download | Demo | Documentation