Dojo バージョン 1.10 は、ネストされた Dnd をまだサポートしていません。
CSS ポジショニングとオーバーレイ div が機能しませんでした。しかし、要素を dndContainer から親 dndContainer にドラッグしても、親の onMouseOverEvent がトリガーされないことに気付きました。
誰かがまだ道場を使用していて同じ問題を抱えている場合、これを解決するための私のアプローチは次のとおりです。
独自の dndSource を宣言します (nestedDndSource.js など)。
define([
"dojo/_base/declare",
"dojo/dnd/Source",
"dojo/dnd/Manager"
], function(declare,dndSource, Manager){
var Source = declare("dojo.dnd.Source", dndSource, {
parentSource: null,
onOutEvent: function(){
if(this.parentSource != undefined)
Manager.manager().overSource(this.parentSource)
Source.superclass.onOutEvent.call(this);
}
});
return Source;
})
dojo の代わりにそのネストされた DndSource を子に使用し、必ず親の dndSource を parentSource-Parameter として提供してください。
var parentDndSource = new dojoDndSource(parentNode, {..});
var childDnDSource = new nestedDndSource(childNode,{
parentSource: parentDndSource,
onDropExternal: ...
});
作業例: https://jsfiddle.net/teano87/s4pe2jjz/1/