Сброс

До настоящего времени основное внимание в этой главе уделялось этапу перемещения объектов на экране. Этот раздел завершает обсуждение, сконцентрировав внимание на этапе сбрасывания. Для начала рассмотрим класс dojo.dnd.Source – специализированный контейнер ный класс, являющийся реализацией перемещаемого объекта в механизме «перетащил и бросил». Класс Source может играть роль зоны сброса, но, как будет показано ниже, с помощью класса dojo.dnd.Target можно определить «настоящую» зону сброса. Объекты класса Source могут действовать и как перемещаемые объекты, и как зоны сброса, а объекты класса Target могут играть роль только зоны сброса. Объекты класса Source создаются точно так же, как и объекты класса Moveable, – вызывается функцияконструктор, которой в первом аргументе передается узел, а во втором – объект с параметрами.

Основное назначение класса Source состоит в том, чтобы устранить лишние операции, связанные с перемещением и сбросом элементов, упорядоченных в виде списка, как показано в следующем примере:


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


(body)
foo

bar

baz

quux


(/body)


В Dojo 1.1 файл dndDefault.css недоступен в версии AOL CDN, но он присутствует в исходных текстах, в каталоге dojo/tests/dnd.


Вам необходимо добавить ссылку на него, чтобы получить оформление страницы.

Хотя этот начальный пример выглядит не очень впечатляюще, тем не менее в нем заключен значительный объем функциональных возможностей. Обратите внимание, что в нем напрямую используется единственный класс из инструментария – класс Source. На основе этого класса создается контейнер элементов, которые можно перемещать в пределах контейнера, для чего следует определить атрибут dojoType в соответствующем теге и произвести парсинг элемента – как и в большинстве других примеров, для этого в массив djConfig добавляется параметр parseOnLoad.

Поэкспериментируйте с этим примером. Совершенно очевидно, что он позволяет перетаскивать элементы по одному за раз, однако важно отметить, что он обладает полной палитрой предлагаемых функциональных возможностей:
• Щелчком мыши выделяется единственный элемент, а все остальные элементы остаются невыделенными.
• Щелчок при нажатой клавише Ctrl переключает состояние выделения элемента и позволяет выделять несколько элементов сразу. Кроме того, это позволяет снять выделение с отдельных элементов, если выделена целая группа.
• Щелчок при нажатой клавише Shift позволяет выделить диапазон элементов, начиная от выделенного элемента до элемента, на котором производится щелчок.


Все остальные элементы, оказавшиеся за пределами диапазона, теряют выделение.
• Удержание клавиши Ctrl во время перетаскивания приводит к созданию и перемещению копии выделенных элементов.

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

Статьи из раздела Dojo на эту тему:
Взаимодействие со сбрасываемыми объектами
Истинная зона сброса
Координата Z
Ограничение перемещений
Перетаскивание

Вернуться в раздел: Dojo / Перетаскивание элементов