2014-02-28 29 views
0

是否有一種簡單的方法可以避免用戶將文件夾放到文件上&?Dynatree在非文件夾上禁用放置

dynatree中有一個小腳本,用於檢查是否嘗試將文件移動到原來的位置。然後它顯示一個小紅叉以向用戶顯示這個點是不可丟棄的。

是否有解決方法使用相同的方法使文件夾只能放置? (我在過去使用jstree,還有你可以對此進行設置,但dynatree具有一定的優勢,以我目前的項目,所以我想切換到dynatree ...)

回答

0

你可以簡單地在onDragStart或返回falseonDrop回調來控制此:

$("#tree").dynatree({ 
    ... 
    dnd: { 
     preventVoidMoves: true, // Prevent dropping nodes 'before self', etc. 
     onDragStart: function(node) { 
     /** This function MUST be defined to enable dragging for the tree. 
     * Return false to cancel dragging of node. 
     */ 
     return true; 
     }, 
     onDragEnter: function(node, sourceNode) { 
     /** sourceNode may be null for non-dynatree droppables. 
     * Return false to disallow dropping on node. In this case 
     * onDragOver and onDragLeave are not called. 
     * Return 'over', 'before, or 'after' to force a hitMode. 
     * Return ['before', 'after'] to restrict available hitModes. 
     * Any other return value will calc the hitMode from the cursor position. 
     */ 
     // Prevent dropping a parent below another parent (only sort 
     // nodes under the same parent) 
     if(node.parent !== sourceNode.parent){ 
      return false; 
     } 
     // Don't allow dropping *over* a node (would create a child) 
     return ["before", "after"]; 
     }, 
     onDrop: function(node, sourceNode, hitMode, ui, draggable) { 
     /** This function MUST be defined to enable dropping of items on 
     * the tree. 
     */ 
     sourceNode.move(node, hitMode); 
     } 
    } 

看一看本實施例的源代碼 http://wwwendt.de/tech/dynatree/doc/sample-dnd.html