代码之家  ›  专栏  ›  技术社区  ›  Calvin

Dojo拖放:如何设置拖放项的格式?

  •  2
  • Calvin  · 技术社区  · 15 年前

    我正在使用Dojo尝试用Dojo的dnd构建应用程序。我四处寻找这个问题的答案,但我只是不确定如何完成这个问题。我有一个源对象,其中有一堆以某种方式用HTML/CSS格式化的产品。当我将这些对象拖到目标对象上时,删除的项看起来仍然与以前相同。我想在被删除后改变它的格式。你知道怎么做吗?

    2 回复  |  直到 9 年前
        1
  •  2
  •   seth    15 年前

    你是通过传球 creator 对源对象的函数引用。

    假设你有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 .

        2
  •  0
  •   JHobern Jim Michaels    9 年前
    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
            }
        }
    }