2012-10-31 88 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