使用 jstree 我想限制树的深度,不允许在某些节点上放置。
这是我的(简化的)代码:
$('#tree').jstree({
"plugins":["dnd"],
"core":{
"check_callback":true
},
"dnd":{
"copy":false
}
}).on("move_node.jstree", function(node,nodes){
console.log("node : "+nodes.node.id);
console.log("parent : "+nodes.node.parent);
console.log("position : "+nodes.position);
});
我找到了有关旧版本的文档,但没有找到 jstree 3
我尝试了经典的 return false;在 move_node 函数的某些条件下 - 它不会改变任何东西。 所以我想我的问题很简单:如何在某些条件下禁用 move_node - 最好的方法是不允许拖动某些节点(即不显示它们前面的三角形 - 以及红叉而不是绿色标记) 当然,这个节点仍然是可拖动的,并且与任何其他节点一样。
最佳答案
在 jsTree 中,使用“types”插件,您可以限制删除某些节点,您可以在其中指定任何节点,并通过设置“max_children”、“等参数来指定允许的子节点数量、节点内部允许的最大节点深度” max_深度”,“valid_children”。
检查这个Demo供您引用。
在最新的 jsTree v3+ 中,这个“types”插件并没有在 dnd 插件中完全实现。
如果您看到源代码行号 5036(在 dnd 插件中),则有类似这样的注释:
// TODO: now check works by checking for each node individually, how about max_children, unique, etc?
// TODO: drop somewhere else - maybe demo only?
因此需要等待jsTree的下一个版本。
关于jquery - jstree 3 - dnd - 限制删除到某个节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24082992/