Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Dynatree禁用非文件夹上的拖放_Php_Jquery_Drag And Drop_Dynatree - Fatal编程技术网

Php Dynatree禁用非文件夹上的拖放

Php Dynatree禁用非文件夹上的拖放,php,jquery,drag-and-drop,dynatree,Php,Jquery,Drag And Drop,Dynatree,有没有一种简单的方法可以避免用户将文件和文件夹放到文件中 dynatree中有一个小脚本,用于检查是否尝试将文件移动到原来的位置。然后,它会显示一个小红十字,向用户显示该点是不可删除的 是否有一种解决方法可以使用相同的方法使文件夹仅可删除? (我过去使用过jstree,您可以在那里设置它,但是dynatree对我当前的项目有一些优势,所以我想切换到dynatree…您只需在onDragStart或onDrop回调中返回false即可控制此操作: $("#tree").dynatree({

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

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

是否有一种解决方法可以使用相同的方法使文件夹仅可删除?
(我过去使用过jstree,您可以在那里设置它,但是dynatree对我当前的项目有一些优势,所以我想切换到dynatree…

您只需在
onDragStart
onDrop
回调中返回
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);
      }
    }
看看这个例子的源代码