Dojo拖放:如何格式化已删除的项目?

时间:2009-07-14 18:35:55

标签: javascript dojo drag-and-drop

我正在使用Dojo尝试使用dojo的dnd构建应用程序。我四处寻找这个问题的答案,但我不知道如何实现这个目标。我有一个Source对象,其中有一堆产品以某种方式用html / css格式化。当我将这些对象拖到我的Target对象时,删除的项目仍然与以前一样。我想在删除后以不同的方式格式化它。任何想法如何做到这一点?

2 个答案:

答案 0 :(得分:2)

您可以通过将creator函数引用传递给Source对象来完成此操作。

假设您有dojo 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页面的精彩内容在the SitePen blog上。

答案 1 :(得分:0)

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
        }
    }
}