0
是否有一種簡單的方法可以避免用戶將文件夾放到文件上&?Dynatree在非文件夾上禁用放置
dynatree中有一個小腳本,用於檢查是否嘗試將文件移動到原來的位置。然後它顯示一個小紅叉以向用戶顯示這個點是不可丟棄的。
是否有解決方法使用相同的方法使文件夾只能放置? (我在過去使用jstree,還有你可以對此進行設置,但dynatree具有一定的優勢,以我目前的項目,所以我想切換到dynatree ...)
是否有一種簡單的方法可以避免用戶將文件夾放到文件上&?Dynatree在非文件夾上禁用放置
dynatree中有一個小腳本,用於檢查是否嘗試將文件移動到原來的位置。然後它顯示一個小紅叉以向用戶顯示這個點是不可丟棄的。
是否有解決方法使用相同的方法使文件夾只能放置? (我在過去使用jstree,還有你可以對此進行設置,但dynatree具有一定的優勢,以我目前的項目,所以我想切換到dynatree ...)
你可以簡單地在onDragStart
或返回false
onDrop
回調來控制此:
$("#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