Dojo在dnd / drop /之前中止拖放操作

时间:2010-07-14 18:06:35

标签: javascript dojo drag-and-drop

我想知道是否有一种方法可以中止dojo中的默认drop操作。我在函数中做了一些自定义操作,

dojo.subscribe("/dnd/drop/before", function(source, nodes, iscopy){
     //Custom manipulation
});

从这个功能,我想取消掉落,类似于按下Esc键时发生的情况?

谢谢

2 个答案:

答案 0 :(得分:2)

您可以发布主题dnd/cancel,即dojo.publish('/dnd/cancel'),然后致电dojo.dnd.manager().stopDrag()取消放弃。

但推荐的方法是在当前节点不可删除时自定义checkAcceptance() dojo.dnd.Source以返回false。在dojo dnd的doc中查找更多详情。

答案 1 :(得分:1)

对我而言,压倒onDrop就像魅力一样。根据{{​​3}},我有类似的东西:

var source2 = new dojo.dnd.Source("source", {
        onDrop : function(source, nodes, copy) {
            if (canProceedCondition) {
                this.onDropExternal(source, nodes, copy);
            }           
        }
    });