Помогите с Dojo Drag & Drop - PullRequest
1 голос
/ 13 июня 2011

Привет. Я пытаюсь реализовать некоторые функции перетаскивания в проекте, но у меня возникли некоторые трудности с некоторыми аспектами.Одна из проблем, с которыми я сталкиваюсь, связана с созданием пользовательского аватара, я могу создать собственный аватар, но мне нужно немного обмануть и скрыть некоторые элементы с помощью CSS.

Ниже приведен фрагмент моего кода, а не весь код, мне потребовались все необходимые пакеты и т.д.собственный пользовательский аватар.Актуальная перетаскиваемая разметка ниже:

<div class="canDrag panelLeft">
                        <div class="dojoDndItem" dndType="product" title="digitalCamera" id="12345">
                            <h3 class="productTitle"><a href="">Samsung ES71</a></h3>
                            <p class="productType">Compact Digital Camera</p>
                            <img src="img/small_Cam.png" class="imgLMargin" alt="Samsung ES71"/>
                            <div class="dragHandle">
                            </div>
                        </div>
                    </div>

Вместо того, чтобы добавлять весь div из canDrag и вниз, я хотел бы получить различные элементы, такие как изображение и заголовок .product, и просто отобразить их.Если у кого-то есть какие-либо идеи, я заранее благодарю вас, и если мой вопрос не был достаточно ясен, я могу попытаться перефразировать.

Приветствия

1 Ответ

2 голосов
/ 14 июня 2011

CSS должно быть хорошо.В противном случае вы можете использовать атрибут dndData для своих элементов или добавить элементы вручную в исходный объект DnD.

При использовании класса dojoDndItem Dojo ожидает, что визуализация аватара уже разрешенав самой разметке.Вот почему он передает внутренний HTML как данные элемента.Это для самого простого и распространенного случая, когда вы не используете пользовательского создателя.Я думаю, что использование CSS для настройки аватара - это хорошо.Даже если вы не используете пользовательского создателя для установки класса avatarStyle, вы можете воспользоваться тем, что Dojo помещает аватар в свой собственный контейнер, помеченный классом dojoDndAvatar (или dojoDndAvatarItem).Взгляните на источник по адресу dojo / dnd / Avatar.js .

Если вы все еще хотите использовать собственного создателя, у вас есть несколько вариантов:

  • Добавьте атрибут dndData к вашим предметам.В этом случае это то, что передается функции создателя как параметр item.Это может быть что угодно, и вы можете использовать это для дальнейшей настройки аватара.Например.вы можете сериализовать объект JSON и динамически создать аватар из этого объекта, или вы можете установить для него уникальный идентификатор, а затем использовать dojo.query() для доступа к узлам под ним.

  • Удалитьэлементы полностью добавляют их программно с помощью метода insertNodes().В этом случае ваша функция-создатель должна реализовывать как случай для аватара, так и случай для фактического элемента.

В частности, он не рассматривает ваш вопрос, но вот отличное руководство по Dojo DnD .

Справочное руководство Dojo также полезно, когда вы понимаете, что происходит.И, конечно же, используйте источник Люк!

...