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