繁体   English   中英

Dynatree禁用非文件夹上的删除

[英]Dynatree disable drop on non-folders

有没有一种简单的方法可以避免用户将文件和文件夹拖放到文件上?

dynatree中有一个小脚本,用于检查您是否尝试将文件移到原来的位置。 然后,它会显示一个红色的小叉,向用户显示该点不可放置。

有没有使用相同方法仅使文件夹可拖放的解决方法? (我过去使用过jstree,可以在其中进行设置,但是dynatree对我当前的项目有一些优势,因此我想切换到dynatree ...)

您可以简单地在onDragStartonDrop回调中返回false来控制它:

   $("#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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM