Виджет - это специальным образом оформленный модуль вывода информации.
Виджет jQuery UI - Accordion помогает отображать или скрывать информацию, расположенную в нескольких панелях. Именно поэтому,
этот виджет часто используют для организации меню на сайте (хотя с точки зрения оптимизации сайта это не очень хорошо).
А вот использовать этот виджет для других целей порой очень удобно. Например, для организации вот такого справочника
(пощелкайте по панелям):
Тег <br> - тег принудительного перевода строки. Текст, после этого тега начинается с новой строки.
Теги <p></p> разделяют текст на абзацы. Перед началом каждого абзаца следует поместить тег
<p>, закрывающий тег не обязателен.
Теги <sub></sub> выводят текст ниже уровня строки шрифтом меньшего размера.
Теги <sup></sup> выводят текст выше уровня строки шрифтом меньшего размера.
Обратите внимание, одновременно панели не открываются. Мы видим содержимое только той панели, по которой щелкнули, остальные
сворачиваются.
Для реализации такого справочника, необходимо учитывать требования, выдвигаемые виджетом к html-разметке. Дело в том, что виджет считает
панелью то, что содержится в тегах <a></a>, а содержимым панели - все, что находится в тегах
<div></div> после ссылки. Иными словами структура html-разметки должна быть следующей:
Тег <br> - тег принудительного перевода строки.
Текст, после этого тега начинается с новой строки.
Теги <p></p> разделяют текст на абзацы.
Перед началом каждого абзаца следует поместить тег
<p>, закрывающий тег не обязателен.
Теги <sub></sub> выводят текст ниже уровня строки
шрифтом меньшего размера.
Теги <sup></sup> выводят текст выше уровня строки
шрифтом меньшего размера.
autoHeight - устанавливает высоту содержимого панели. По умолчанию высоты у всех панелей одинаковы и
равны высоте панели с максимальным содержимым. Значение false этого параметра сделает высоты всех панелей разными,
по их содержимому.
clearStyle - полезно для работы с динамическим содержанием, т.к. очищает css-свойства height и overflow
каждый раз после окончания анимации. По умолчанию этот параметр выключен (false). Кстати, вместе с опцией autoHeight этот
параметр не работает.
event - определяет событие, по которому будет происходить свертывание и развертывание панелей.
По умолчанию это щелчок (click), но можно выбрать и другое.
fillSpace - определяет высоту открытой секции (игнорируя параметр autoheight). По умолчанию - false.
При установке значения true открытая панель будет занимать всю высоту, определяемую родительским элементом.
navigation - при перезагрузке страницы позволяет сохранить состояние. Для этого разыскивает и активирует
ссылку (по умолчанию используется значение false).
navigationFilter - здесь можно определить функцию, которая будет обрабатывать ссылку, по которой
осуществляется переход. Используется совместно с опцией navigation для построения меню.
changestart - событие наступает с началом смены панелей.
change - событие наступает каждый раз при смене активной панели (по завершению анимации).
При использовании этих параметров мы можем определить функцию, которая принимает два аргумента – event (объект события)
и ui (специальный объект, содержащий информацию о заголовках и содержании панелей).
Свойства этих аргументов:
- ui.newHeader - заголовок активной панели,
- ui.oldHeader - заголовок предыдущей панели,
- ui.newContent - содержимое активной панели,
- ui.oldContent - содержание предыдущей панели.
Давайте настроим наш справочник, используя некоторые параметры, например, вот так:
Тег <br> - тег принудительного перевода строки. Текст, после этого тега начинается с новой строки.
Теги <p></p> разделяют текст на абзацы. Перед началом каждого абзаца следует поместить тег
<p>, закрывающий тег не обязателен.
Теги <sub></sub> выводят текст ниже уровня строки шрифтом меньшего размера.
Теги <sup></sup> выводят текст выше уровня строки шрифтом меньшего размера.
Теперь один щелчок открывает панель, повторный щелчок закрывает ее. Высота панели определяется по ее содержимому, что
выглядит гораздо лучше.
Так же, как и у плагинов jQuery UI, у виджета accordion есть методы, которые позволяют менять его работу после
инициализации: destroy, disable, enable, option и activate. С первыми четырьмя мы уже знакомы
(по уроку 10), метод activate позволяет программно активировать необходимые секции.
Пример:
$("#les15_accordion").accordion("activate", 0);
// где 0 - номер секции (отсчет ведется с 0).