Додзе Перетаскивание: как отформатировать выпадающий элемент? - PullRequest
2 голосов
/ 14 июля 2009

Я использую Dojo, пытаясь создать приложение с помощью dojo's dnd. Я искал ответ на эту проблему, но я просто не уверен, как этого добиться. У меня есть объект Source, в котором есть несколько продуктов, отформатированных html / css определенным образом. Когда я перетаскиваю эти объекты в мой целевой объект, отброшенный элемент все равно выглядит так же, как и раньше. Я хочу отформатировать его по-другому после того, как меня уронили. Есть идеи как это сделать?

Ответы [ 2 ]

2 голосов
/ 14 июля 2009

Вы делаете это путем передачи функции creator ref в ваш объект Source.

Предполагается, что у вас есть додзе 1.3 и вы можете использовать dojo.create.

В вашем JS:

function myCreator( item, hint ) {
   var myDiv = dojo.create( 'div', { innerHTML: item.name });

   if (hint == 'avatar') {
      // create your avatar if you want
      myDiv.innerHTML = 'I'm an avator of ' + item.name;
   }
   return {node: myDiv, data: item, type: item.type};
}

Тогда в вашем HTML (div или что-то еще):

<div dojoType="dojo.dnd.Source" creator="myCreator"></div>

Если вы хотите создать элемент Source программным способом, просто передайте его создателю следующим образом:

var dnd = new dojo.dnd.Source(someNode, { creator: myCreator });

Я использовал item.name в моем примере выше. Это все зависит от вашего предмета, поэтому вы, вероятно, захотите использовать другое поле.

Отличный способ создания dojo.dnd страницы находится на блоге SitePen .

0 голосов
/ 27 октября 2015
topic.subscribe("/dnd/drop", function(source, nodes, copy, target) {

    target.forInSelectedItems(function(item, id) {
        //alert(document.getElementById(id));
        if (document.getElementById(id).innerHTML == "something from your source") {
            //create what you want, and add it to id
        }
    }
}
...