Введение в _jQueryUI

jQuery UI — это библиотека на основе jQuery, реализующая более 20 плагинов, среди которых плагины организующие различное поведение (например перетаскивание или растягивание элементов), восемь видов виджетов (такие как календарь, диалоговые окна, систему вкладок и.т.д) и анимационные эффекты. Кроме этого, UI обладает несколькими темами оформления, с помощью которых оформляются виджеты и которые содержат набор полезных иконок (173 штуки). Любая из тем оформления может быть подкорректирована прямо на сайте jQuery UI, непосредственно перед загрузкой.

Содержание

Начнем

jQuery UI обладает пятью плагинами поведения, некоторые возможности которых представлены ниже:

Каждая из представленных выше возможностей, организуется в считанные строки кода.

UI так же предоставляет восемь плагинов организующих виджеты:

Еще, jQuery UI организует ряд продвинутых анимационных эффектов, а так же несколько видов особого позиционирования.

Кроме того, развитую систему стилизации jQuery UI можно использовать, чтобы задавать скругленные углы или например стилизованные области, для системных предупреждениях или сообщениях об ошибке:

Использование

Прежде чем приступать к изучению использования отдельных плагинов, важно узнать принцип работы со всей библиотекой jQuery UI.

Выбор компонентов и загрузка

Зайдите на страницу загрузки jQuery UI и вы увидите, что перед скачиванием можно выбрать необходимые компоненты, тему оформления и версию библиотеки:


вес js-файла, включающего все компоненты составляет 200кб (в несжатом виде), поэтому исключение ненужных компонент может оказаться весьма полезным. Посмотреть как выглядят те или иные темы оформления, а так же отредактировать одну из них для себя, можно на странице //jqueryui.com/themeroller/.



Если вы хотите использовать тему оформления, которую вы настроите самостоятельно, то в начале сделайте все необходимые настройки темы на этой странице, затем нажмите кнопку "Download theme" и вы окажетесь на странице загрузки библиотеки, где в поле Theme будет указана отредактированная вами тема.

После того, как вы определились с темой оформления и требуемыми компонентами, на странице загрузки нужно нажать на Download, после чего на ваш компьютер будет загружен архив. Он будет содержать три папки:

  • css — содержит файлы оформления (CSS-файл и изображения).
  • js — содержит файлы с jQuery и jQuery UI.
  • development-bundle — эту папку можно не загружать на сайт, все ее содержимое носит вспомогательный характер. Здесь много различных файлов с демонстрацией работы плагина и другими вспомогательными файлами.

Кроме этих трех папок, в корне архива лежит файл index.html, с демонстрацией скачанных плагинов (естественно, этот файл так же незачем загружать на сайт).

Подключение UI к вашему сайту

Чтобы jQuery UI заработал на страницах вашего сайта необходимо, чтобы к странице был подключен js-файл библиотеки jQuery, js-файл jQuery UI (находится в папке js скачанного архива) и содержимое папки css (важно, чтобы все оно (содержимое css) располагалось на хостинге в одном каталоге):

<link type="text/css" href="css/themename/jquery-ui-1.8.12.custom.css" rel="Stylesheet" />	
<script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.12.custom.min.js"></script>

И все! После этого вы можете использовать возможности jQuery UI на вашей странице. Например с помощью одной строки javascript-кода сделать обычный элемент - перетаскиваемым:

Работа с плагинами

Все плагины поведения и виджетов обладают схожим принципом работы. Каждый плагин jQuery UI представлен одним основным методом, который вызывается на выбранных элементах. Его имя всегда совпадает с именем плагина. С помощью этого метода можно инстанцировать (устанавливать) плагин на элементы, узнавать и изменять свойства плагина, устанавливать обработчики событий, а так же, запускать функции плагина, которые обычно называют методами (хотя они не являются методами в обычном смысле этого понятия).

Инстанцирование (установка)

Для установки любого плагина на элементы страницы, достаточно выбрать нужные элементы средствами jQuery и затем вызвать на них метод работы с плагином (имя которого всегда совпадает с названием плагина):

$("#someId").dialog() применит плагин Dialog к элементу с идентификатором someId, превратив его в диалоговое окно.
$("div:lt(3)").draggable() применит плагин Draggable к первым трем div'ам на странице, сделав их перетаскиваемыми.

Методы

Обычно, под методом какого-то объекта в javascript, подразумевается функция, вызываемая на этом объекте следующим образом:

obj.A(); // вызов метода A на объекте obj
obj.B(); // вызов метода B на объекте obj

Однако в пределах работы с конкретными плагинами jQuery UI, методами называют такую форму записи:

$("#someId").plaginName("имя метода", параметры метода);

Например:

$("#someId").dialog("close") метод close закроет диалоговое окно, установленное на элемент с id = someId
$("div").draggable("destroy") destroy удалит функциональность draggable со всех div-элементов на странице

Свойства

Каждый плагин обладают рядом свойств (их описание можно найти в документации соответствующих плагинов). Каждое свойство можно задать в момент инстанцирования плагина. Для этого, при установке плагина на элемент нужно передать объект со свойствами в формате {имя_свойства_1:значение_1, имя_свойства_2:значение_2, ...}:

// сделаем из элемента с id=someId диалоговое окно с помощью 
// плагина dialog и укажем при этом заголовок для окна
$("#someId").dialog({title:"Сообщение"});
 
// сделаем из первого div'а на странице календарь с помощью 
// плагина datepicker, и укажем минимальную и максимальную дату
$("div:first").datepicker({
  minDate:new Date(2007, 1 - 1, 1),
  maxDate:new Date(2013, 1 - 1, 1)
});

Кроме того, значение любого свойства можно узнать или изменить уже после инстанцирования плагина. Для этого необходимо использовать метод "option":

// узнаем заголовок у диалогового окна
var dialogTitle = $("#someId").dialog("option", "title");
 
// изменим заголовок, добавив к нему префикс "#1 "
$("#someId").dialog("option", "title", "#1 " + dialogTitle)
 
// изменим минимальную дату в календаре, 
// который установлен на первый div на странице
$("div:first").datepicker("option", "minDate", new Date(2008, 1 - 1, 1));

События

Каждый плагин является источником ряда специфических событий. Например перетаскиваемые элементы производят события начала перетаскивания (dragstart) и окончания перетаскивания (dragstop), диалоговые окна являются источниками событий их открытия и закрытия (dialogopen и dialogclose) и т.д. Обработчики событий можно устанавливать средствами основного метода плагина:

// обработка события close диалогового окна
$("selector").dialog({
   close: function(event, ui) { ... }
});

или с помощью bind стандартного метода библиотеки jQuery. В этом случае, к названию события всегда будет добавляться префикс из названия плагина (dialogclose вместо close, dragstop вместо stop и т. д.):

// обработка события close диалогового окна
$("selector").bind( "dialogclose", function(event, ui){ ... });

Список событий можно найти в документации соответствующих плагинов.

Оформление

Все плагины jQuery UI обладают общей системой оформления. Ее можно настраивать с помощью визуального редактора ThemeRoller, а так же манипулируя css напрямую. Подробнее об этом можно узнать в статье Оформление_в_jQuery_UI.

Создание своих плагинов

Помимо того, что jQuery UI организует множество удобных и интуитивно понятных плагинов, она предоставляет средство, с помощью которого можно делать подобные плагины самостоятельно — фабрику виджетов UI. Одним из ее больших плюсов является то, что в ней организованы некоторые возможности ООП, позволяющие дорабатывать существующие виджеты и создавать собственные иерархии виджетов.