2012-10-31 52 views
0

我有一个问题想我有一对夫妇的尝试,谷歌搜索:(道场DND创建多个项目

我已经创建了三个dojo.dnd.Source成分小时后无人接听。它是用来夫妇一个用户到一个项目左侧我有项目和右侧我有我的用户,在中心我有一个画布,我设置了相关的创作者和checkacceptance函数,一切都很好。

在中心画布上,用户可以放置一个显示为div的项目,其中包含所有相关用户作为div元素。其他可以放置的dndtype是用户类型,在这种情况下,我想清空画布并显示所有项目te被丢弃的用户是相关的因为我在画布上放置了一个项目或用户,因此调用了创建者函数。问题是创建者函数返回1个应该被删除的元素,如果我删除一个用户,我需要在画布上绘制几个元素,所以创建者方法没有完全覆盖这个元素,因为它只返回一个元素。

为了应付默认行为,我尝试手动添加项目到画布并仅返回一个,我知道它并不漂亮:S它正在工作,但我遇到了奇怪的行为,如果我将项目移动到画布被视为用户而不是项目。

底线,有没有一种方法,你们知道要删除一个项目并创建多个。我正在寻找触发掉落事件,但无济于事。

谢谢!

回答

0

您正在寻找的事件是Source的onDrop事件。检查API文档以获取更多可用的事件:在商店内部和商店之间使用onDropExternal和onDropInternal。

require(["dojo/dnd/Source"], function(Source){ 
    var source = new Source({ 
    onDrop = function(source, nodes, copy) { 
     //called only on the current target, when drop is performed 
     this.inherited(arguments); //execute the default onDrop function 
     //now add the node(s) to the other stores here 
     //you might be able to just do something like: 
     source2.insertNodes(nodes);//but this is untested ;) 
    } 
    }); 
}); 
+0

在那里,我可以让它以这种方式工作,但由于它是一个全球订阅,我不想在那里放置源特定的逻辑。希望有一个更标准的方式,因为我现在滥用回调:)我正在寻找更像创建者方法的东西,允许nodelist返回,而不是单个节点,如果它存在..感谢输入! – Remco