2010-07-14 63 views
3

我想知道是否有方法可以中止dojo中的默認拖放操作。我做了一些自定義操作的功能,Dojo中止在dnd/drop /中的拖放操作

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

而從這個功能,我想取消的下降,類似於當你按下ESC鍵會發生什麼?

感謝

回答

2

可以發佈主題dnd/cancel,即dojo.publish('/dnd/cancel'),然後調用dojo.dnd.manager().stopDrag()取消下降。

但推薦的方法是在當前節點不可丟棄時自定義checkAcceptance()dojo.dnd.Source以返回false。在dojo dnd的doc中查找更多詳情。

1

對我來說,覆蓋onDrop就像一個魅力。加入到doc,我有類似的東西:

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