🔔 Alert..!! Get 2 Month Free Cloud Hosting With $200 Bonus From Digital Ocean ACTIVATE DEAL

jquery-bonsai is a lightweight jQuery plugin that takes a big nested list and prunes it down to a small expandable tree control.Also includes support for checkboxes (including ‘indeterminate’ state) and for populating the tree using a JSON data source.

Plugins

Documentation

jQuery Bonsai

jquery-bonsai is a lightweight jQuery plugin that takes a big nested list and prunes it down to a small expandable tree control.

Also includes support for checkboxes (including 'indeterminate' state) and for populating the tree using a JSON data source.

Installation

bower

bower install jquery-bonsai --save 

npm

npm install jquery-bonsai --save 

Usage

$('ul#my-nested-list').bonsai(); 

API

$.fn.bonsai(options)

$('#list').bonsai({   expandAll: false, // expand all items   expand: null, // optional function to expand an item   collapse: null, // optional function to collapse an item   addExpandAll: false, // add a link to expand all items   addSelectAll: false, // add a link to select all checkboxes   selectAllExclude: null, // a filter selector or function for selectAll   idAttribute: 'id', // which attribute of the list items to use as an id    // createInputs: create checkboxes or radio buttons for each list item   // using a value of "checkbox" or "radio".   //   // The id, name and value for the inputs can be declared in the   // markup using `data-id`, `data-name` and `data-value`.   //   // The name is inherited from parent items if not specified.   //   // Checked state can be indicated using `data-checked`.   createInputs: false,   // checkboxes: run qubit(this.options) on the root node (requires jquery.qubit)   checkboxes: false,   // handleDuplicateCheckboxes: update any other checkboxes that   // have the same value   handleDuplicateCheckboxes: false });

Bonsai#update()

If the DOM changes then you'll need to call #update:

$('#list').bonsai('update');

Bonsai#listItem(id)

Return a jQuery object containing the <li> with the specified id.

Expanding/collapsing a single items

  • Bonsai#expand(listItem)
  • Bonsai#collapse(listItem)
  • Bonsai#toggle(listItem)
  • Bonsai#expandTo(listItem)
var bonsai = $('#list').data('bonsai'); bonsai.expand(listItem);

All of these methods accept either a DOMElement, a jQuery object or an id and return a jQuery object containing the list item.

Expanding/collapsing the whole tree

  • Bonsai#expandAll(listItem)
  • Bonsai#collapseAll(listItem)

Bonsai#serialize()

Returns an object representing the expanded/collapsed state of the list, using the items' id to identify the list items.

var bonsai = $('#list').data('bonsai'); var state = bonsai.serialize();

Bonsai#restore()

Restores the expanded/collapsed state of the list using the return value of #serialize().

var bonsai = $('#list').data('bonsai'); var state = bonsai.serialize(); // do stuff that changes the DOM, and may not retain collapsed state bonsai.update(); // update to handle any new DOM elements bonsai.restore(state); // restores the collapsed state

You May Also Like