1.0.0 • Published 8 years ago

jquery.nestedlist v1.0.0

Weekly downloads
1
License
GPL-3.0+
Repository
github
Last release
8 years ago

jquery.nestedlist

Creates a browsable nested list.

Features

  • Unlimited nesting depth
  • Arbitrary number of nested lists per page
  • Change events for setting list titles or similar
  • Compatible with Firefox, Chrome, Internet Exploder, Opera, Safari, and more

Additional features

  • The up-link (anything with class ".nestedlist-up") can be anywhere on the page
  • All cards have the same width
  • Height is dynamic
  • Shows first list on load
  • HTML fallback with deactivated javascript possible
  • At the moment, child lists can not be shared between list items
  • It is possible to create a horizontal list by disabling the animation and setting a width for <li>

Dependencies

  • jQuery

Usage

Call "nestedList" on a jQuery object with the topmost <ul> element of the list.

$("ul.demo-list").nestedList()

Optional configuration

$(selector).nestedList({
  optionName: optionValue, ...
})
optionNamedescriptionoptionValue
onBeforeChangecalled before showing a listfunction(-1 or 1, nextList, nestedList)
onAfterChangecalled after showing a listfunction(-1 or 1, nextList, nestedList)
upButtonfor retrieving the upButton anywhere in the document by jQuery-selector or jQuery object. The upButton is one container that is moved around and inserted where it is needed.string, jQuery
upButtonShowthe default is function(upButton, nextList) { nextList.prepend(upButton) }function(upButton, nextList)
shiftAnimationoptions for jQuery.animate()object
noScriptLinkstrue or a selector relative to the nestedlist container to select links that should be replaced with their content textboolean, string

Example DOM structure

ul
  li
    content
  li
    content
    ul
      li
      li
      li

See demo/demo.css for an example stylesheet

Methods and objects

nestedListsObject

$.nestedList returns a nestedListsObject

Example

var nestedLists = jQuery(".demo-list").nestedList()

Content

{
  nestedLists: [nestedListObject, ...],
  closeAll: closeAll
}

Methods

namedescription
closeAll()closes all open sub-lists of all nestedLists and shows the toplevel/first list

nestedListObject

{
  container: container,
  toplevelClass: toplevelClass,
  closeList: closeList
}

Methods

namedescription
closeList()close the currently active sub-list and show its parent list