UNPKG

kist-tabify

Version:

Simple tabs and accordion interface.

199 lines (131 loc) 3.65 kB
# kist-tabify Simple tabs and accordion interface. ## Installation ```sh npm install kist-tabify --save bower install kist-tabify --save ``` ## API ### `$Element.tabify([options], [placement])` Returns: `jQuery` Element is container for tabs and corresponding panes. If panes can’t be found inside element, plugin will search for them outside container, beginning with `body` element. #### options Type: `Object|String` ##### Options defined as `Object` ###### type Type: `String` Default: `tab` Type of tabbing interface. It can be either `tab` or `accordion`. ###### initial See [placement](#placement). ###### multiSelect Type: `Boolean` Default: `false` If it’s accordion interface, determines if multi tab selection is allowed. ###### tab Type: `String` Default: `> ul > li > a, > ul > li > button` Selector used to collect all tab toggler elements. ###### pane Type: `String` Default: `> div > div` Selector used to collect all tab pane elements. ###### changeURL Type: `Boolean` Default: `false` If tab toggler elements are anchor elements, determines if URL should be update with `href` value. ###### select Type: `Function` Arguments: [Tab], [Pane] Event: `tabifyselect` Callback to run on tab selection. ###### deselect Type: `Function` Arguments: [Tab], [Pane] Event: `tabifydeselect` Callback to run on tab deselection. ###### create Type: `Function` Arguments: [Tab], [Pane] Event: `tabifycreate` Callback to run on tab instance creation. ##### Options defined as `String` Type: `String` ###### destroy Destroy plugin instance. ###### next Move to next tab element. ###### prev Move to previous tab element. ###### move Move to tab element determined by second argument. Second argument accepts values like [options → initial](#initial). #### placement Type: `Integer|String|Function|Boolean` Default: `1` Initial element to select. If defined as: | Type | Description | | --- | --- | | `Integer` | Index of tab element to activate. | | `String` | Value of `id` attribute, `data-tab-id` attribute or `href` attribute value of tab element to activate. | | `Function` | Should return either index or string which correspond to integer and string values for this property. | | `Boolean` | If true, it will active first tab element, else it won’t activate anything. | ## Examples Default structure for tab interface. ```html <div class="Tab"> <ul class="Tab-items"> <li class="Tab-item"><a href="#tab1" class="Tab-toggler">Tab 1</a></li> <li class="Tab-item"><a href="#tab2" class="Tab-toggler">Tab 2</a></li> <li class="Tab-item"><a href="#tab3" class="Tab-toggler">Tab 3</a></li> </ul> <div class="Tab-panes"> <div class="Tab-pane Tab-pane--1" id="tab1"> <p>Pane 1</p> </div> <div class="Tab-pane Tab-pane--2" id="tab2"> <p>Pane 2</p> </div> <div class="Tab-pane Tab-pane--3" id="tab3"> <p>Pane 3</p> </div> </div> </div> ``` Setup tab instance. ```js $('.Tab').tabify({ type: 'tab', initial: 1, tab: '.Tab-toggler', pane: '.Tab-pane', namespace: 'Foobar', select: function ( tab, pane ) { // I’m selected! }, deselect: function ( tab, pane ) { // I’m deselected! }, create: function ( tab, pane ) { // I’m created! } }); ``` Move to next/previous tab. ```js $('.Tab').tabify('prev'); $('.Tab').tabify('next'); ``` Move to arbitrary tab. ```js $('.Tab').tabify('move', 1); $('.Tab').tabify('move', 'foo'); ``` Destroy plugin instance. ```js $('.Tab').tabify('destroy'); ``` ## Browser support Tested in IE8+ and all modern browsers. ## License MIT © [Ivan Nikolić](http://ivannikolic.com)