Accordion Widgetversion added: 1.0
Description: Convert a pair of headers and content panels into an accordion.
Options
activeType: Boolean or Integer
0
-
Boolean: Setting
active
tofalse
will collapse all panels. This requires thecollapsible
option to betrue
. - Integer: The zero-based index of the panel that is active (open). A negative value selects panels going backward from the last panel.
animateType: Boolean or Number or String or Object
{}
-
Boolean: A value of
false
will disable animations. - Number: Duration in milliseconds with default easing.
- String: Name of easing to use with default duration.
-
Object: Animation settings with
easing
andduration
properties.- Can also contain a
down
property with any of the above options. - "Down" animations occur when the panel being activated has a lower index than the currently active panel.
- Can also contain a
collapsibleType: Boolean
false
eventType: String
"click"
headerType: Selector
"> li > :first-child,> :not(li):even"
Selector for the header element, applied via .find()
on the main accordion element. Content panels must be the sibling immedately after their associated headers.
heightStyleType: String
"auto"
Controls the height of the accordion and each panel. Possible values:
-
"auto"
: All panels will be set to the height of the tallest panel. -
"fill"
: Expand to the available height based on the accordion's parent height. -
"content"
: Each panel will be only as tall as its content.
iconsType: Object
{ "header": "ui-icon-triangle-1-e", "activeHeader": "ui-icon-triangle-1-s" }
Icons to use for headers, matching an icon defined by the jQuery UI CSS Framework. Set to false
to have no icons displayed.
- header (string, default: "ui-icon-triangle-1-e")
- activeHeader (string, default: "ui-icon-triangle-1-s")
Methods
destroy()
disable()
enable()
option( optionName ) Returns: Object
optionName
.-
optionNameType: StringThe name of the option to get.
option() Returns: PlainObject
option( optionName, value )
optionName
.option( options )
-
optionsType: ObjectA map of option-value pairs to set.
refresh()
heightStyle
option.widget() Returns: jQuery
jQuery
object containing the accordion.
Events
activate( event, ui )
ui.oldHeader
and ui.oldPanel
will be empty jQuery objects. If the accordion is collapsing, ui.newHeader
and ui.newPanel
will be empty jQuery objects.beforeActivate( event, ui )
ui.oldHeader
and ui.oldPanel
will be empty jQuery objects. If the accordion is collapsing, ui.newHeader
and ui.newPanel
will be empty jQuery objects.The markup of your accordion container needs pairs of headers and content panels:
1 2 3 4 5 6 | < div id = "accordion" > < h3 >First header</ h3 > < div >First content panel</ div > < h3 >Second header</ h3 > < div >Second content panel</ div > </ div > |
Accordions support arbitrary markup, but each content panel must always be the next sibling after its associated header. See the header
option for information on how to use custom markup structures.
The panels can be activated programmatically by setting the active
option.
Keyboard interaction
When focus is on a header, the following key commands are available:
- UP/LEFT - Move focus to the previous header. If on first header, moves focus to last header.
- DOWN/RIGHT - Move focus to the next header. If on last header, moves focus to first header.
- HOME - Move focus to the first header.
- END - Move focus to the last header.
- SPACE/ENTER - Activate panel associated with focused header.
When focus is in a panel:
- CTRL+UP: Move focus to associated header.
Additional Notes:
- This widget requires some functional CSS, otherwise it won't work. If you build a custom theme, use the widget's specific CSS file as a starting point.
Example:
A simple jQuery UI Accordion
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | <!doctype html> < html lang = "en" > < head > < meta charset = "utf-8" > < title >accordion demo</ title > </ head > < body > < div id = "accordion" > < h3 >Section 1</ h3 > < div > < p >Mauris mauris ante, blandit et, ultrices a, suscipit eget. Integer ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut odio.</ p > </ div > < h3 >Section 2</ h3 > < div > < p >Sed non urna. Phasellus eu ligula. Vestibulum sit amet purus. Vivamus hendrerit, dolor aliquet laoreet, mauris turpis velit, faucibus interdum tellus libero ac justo.</ p > </ div > < h3 >Section 3</ h3 > < div > < p >Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis.Phasellus pellentesque purus in massa.</ p > < ul > < li >List item one</ li > < li >List item two</ li > < li >List item three</ li > </ ul > </ div > </ div > < script > $( "#accordion" ).accordion(); </ script > </ body > </ html > |