先看zTree官方说明文档: 重点:setting.callback.beforeDrop 返回 false,zTree 将恢复被拖拽的节点。思路:利用该特性,可以在 beforeDrop 具体实现中判断是否在兄弟节点间拖拽。 //zTree配置 var setting = { edit: { enable: true, showRemoveBtn: false, showRenameBtn: false }, data: { simpleData: { enable: true } }, callback: { beforeDrop: beforeDrop //拖拽操作结束之前的事件回调,该处用于判断是否兄弟节点间拖动 } }; //仅亲兄弟节点间可拖动 function beforeDrop(treeId, treeNodes, targetNode, moveType) { var moveNode = treeNodes[0]; switch (moveType) { case "prev": case "next": if (moveNode.pId == targetNode.pId) { return true; } break; case "inner": if (moveNode.pId == targetNode.pId) { return true; } break; } return false; } //所有同层级节点间可拖动 function beforeDrop(treeId, treeNodes, targetNode, moveType) { var moveNode = treeNodes[0]; switch (moveType) { case "prev": case "next": if (moveNode.level == targetNode.level) { return true; } break; case "inner": if (moveNode.level == targetNode.level + 1) { return true; } break; } return false; } 如有问题,望指正~
先看zTree官方说明文档:

重点:setting.callback.beforeDrop 返回 false,zTree 将恢复被拖拽的节点。
思路:利用该特性,可以在 beforeDrop 具体实现中判断是否在兄弟节点间拖拽。
如有问题,望指正~