На этом шаге мы рассмотрим один из виджетов.
В дополнение к готовым компонентам библиотека jQuery UI включает в себя набор надежных виджетов пользовательского интерфейса, которые не требуют дополнительной настройки и выглядят, как привычные элементы интерфейса обычных приложений. Например, виджет Dialog, использующий компоненты draggable и resizable, может применяться для воспроизведения диалогового окна, благодаря чему у нас отпадает необходимость создавать собственные диалоги.
Как и другие виджеты пользовательского интерфейса, виджет Dialog может принимать огромное число параметров. Его подходящим образом названный метод .dialog() может также принимать строковые аргументы, которые оказывают влияние на поведение диалога. В самом простом случае метод .dialog() преобразует существующий элемент в диалог и отображает его вместе с элементами, содержащимися в нем. Например, для начала возьмем элемент <div> с простейшей структурой.
<div id="dlg">Мой Диалог</div>
Неудивительно, что этот элемент <div> имеет вид простого текстового блока, как показано на рисунке 1.
Рис.1. Простой элемент <div> выглядит как обычный текстовый блок
Как только браузер создаст дерево DOM, мы можем вызвать простой диалог:
$(document).ready(function() { $('#do-dialog').click(function() { $('#dlg').dialog(); }); });
Теперь текст отображается в окне диалога, как показано на рисунке 2.
Рис.2. Вид диалога после применения темы по умолчанию (шелкните по кнопке)
Полный текст этого примера можно взять здесь.Изменить размеры диалогового окна можно, ухватив и переместив какой-либо его край указателем мыши. Переместить это окно можно, ухватив мышью в пределах верхней области чуть ниже верхней границы. А закрыть - щелкнув на ссылке с изображением крестика в правом верхнем углу.
Однако мы можем улучшить вид диалога, используя стили CSS. Библиотека jQuery UI предоставляет лишь минимальный набор стилей, необходимых для обеспечения функциональности виджетов, и оставляет реализацию внешнего вида за нами. На рисунке 2 показано, как выглядит диалог после применения темы по умолчанию.
Теперь более ясно обозначены различные области диалога, и при наведении на них указатель мыши изменяется, обеспечивая визуальную обратную связь, позволяющую опознать элементы диалога, которые могут использоваться для его перемещения и изменения его размеров.
Как и другие методы библиотеки jQuery UI, метод .dialog() может принимать различные параметры. Некоторые параметры определяют внешний вид диалога, другие позволяют возбуждать события. Ниже приводится пример использования некоторых из этих параметров:
$(document).ready(function() { var $dlg = $('#dlg'); var dlgText = $dlg.text(); $dlg.dialog({ autoOpen: false, title: dlgText, open: function() { $dlg.empty(); }, buttons: { 'add message': function() { $dlg.append('<p>Добавленное сообщение</p>'); }, 'erase messages': function() { $('p', $dlg).remove(); } } }); $('#do-dialog').click(function() { $dlg.dialog('open'); }); });
Мы указали, что изначально диалог должен быть скрыт, но должен открываться, когда пользователь щелкнет на кнопке с атрибутом id="do-dialog". Кроме того, мы перенесли исходное текстовое содержимое диалога в область заголовка и добавили две кнопки, одна из них добавляет текст сообщения, а другая стирает сообщения. Для каждой кнопки определена своя функция, определяющая реакцию на щелчок мышью, одна из них добавляет параграф, а другая удаляет параграфы. Внешний вид диалога приведен на рисунке 3.
Рис.3. Вид диалога (шелкните по кнопке)
Полный текст этого примера можно взять здесь.Описание других параметров, позволяющих определять внешний вид и поведение диалогов, можно найти по адресу: http://docs.jquery.com/UI/Dialog/dialog#options.
На следующем шаге мы рассмотрим jQuery Ul ThemeRoller.