Похоже, вы предполагаете, что delItem
удаляет физические узлы. Посмотрите документацию & mdash; возможно, вы хотите перемещать узлы между контейнерами, а не удалять их с карты. Один простой способ сделать это - просто переместить узлы DOM между контейнерами и вызвать sync()
в обоих контейнерах.
Добавление : Вот очень простой пример, похожий на псевдокод:
function move(node, source, target){
// normalize node and/or node id
node = dojo.byId(node);
// move it physically from one parent to another
// (from target to source) adding to the end
target.parent.appenChild(node);
// now it is moved from source to target
// let's synchronize both dojo.dnd.Source's
source.sync();
target.sync();
}
Или что-то в этом роде должно работать. Важные предметы:
- Перемещение узла от одного родителя к другому, используя любые операции DOM, которые вы считаете подходящими. Я использовал
appendChild()
, но вы можете использовать insertBefore()
или что-нибудь еще.
- Синхронизация обоих источников, задействованных после перемещения.
Очевидно, это работает, если оба источника используют узлы одного типа и структуры. Если нет, вам следует сделать что-то более сложное, например, переместить все, что вам нужно, имитируя реальное перемещение DnD, опубликовав темы, описанные в документации.