Dialog

Диджит Dialog концептуально напоминает всплывающее окно, сквозь которое просвечивает то, что находится под ним. Несмотря на то что содержимое страницы, лежащее ниже, остается видимым, тем не менее вы не можете взаимодействовать с ним, что делает этот диджит идеальным для ситуаций, когда необходимо временно запретить доступ к элементам управления на странице или вынудить пользователя отреагировать на предупреждение.

Но в дополнение к очевидному использованию диджит Dialog может также использоваться в любой другой ситуации, когда требуется появление другого окна. С точки зрения реализации использование диджита Dialog часто выглядит более простым, чем организация взаимодействия с другим окном, потому что все, что находится внутри диджитDialog, является частью дерева DOM текущей страницы. Вы можете обращаться к нему, манипулировать элементами, имеющимися в странице, даже теми, что в настоящий момент невидимы.

Диджит Dialog может содержать любое дерево DOM элементов, которые вам могут потребоваться, будь то простой фрагмент HTML, диджисо сложной схемой размещения или ваш собственный диджит. В примере 15.2 показан наиболее типичный способ использования диджита Dialog – в данном случае он появляется автоматически по завершении загрузки страницы.

Пример 15.2.


Пример типичного использования диджита Dialog


Fun With Dialog!
href="http://o.aolcdn.com/dojo/1.1/dojo/resources/dojo.css" />
href="http://o.aolcdn.com/dojo/1.1/dijit/themes/tundra/tundra.css" />
type="text/javascript"
src="http://o.aolcdn.com/dojo/1.1/dojo/dojo.xd.js"
djConfig="parseOnLoad:true">


(body class="tundra")
So foul and fair a day I have not seen...

(/body)


При создании диджита Dialog программным способом его внутреннее наполнение легко производится с помощью метода setContent, который может принять произвольный узел DOM. Ниже приводится пример, в котором пользователь вынуждается к щелчку на кнопке, помещенной внутрь диджита Dialog, хотя приложение явно просит не делать этого:
dojo.addOnLoad(function() {
var d = new dijit.Dialog();
//спрятать от пользователя обычную кнопку закрытия диалога...
dojo.style(d.closeButtonNode, "visibility", "hidden");
var b = new dijit.form.Button({label: "Do not press this button"});
var handle = dojo.connect(b, "onClick", function() {
d.hide();
dojo.disconnect(handle);
});
d.setContent(b.domNode);
d.show();
});.



Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Dojo на эту тему:
ColorPalette
Editor
InlineEditBox
Menu
ProgressBar

Вернуться в раздел: Dojo / Виджеты приложения