Ash*_*win 7 javascript tree jquery drag-and-drop jstree
在我的jstree中,我有一个Root节点,它是所有节点的父节点.我用过dnd插件.我想允许在树中的任何地方拖放,但只允许在根内部,即不在Root之前或之后.
- [Root]
- Node 1
- Node 1.1
- Node 1.2
+ Node 2
- Node 3
+ Node 3.1
Run Code Online (Sandbox Code Playgroud)
在使用论坛检查后,我发现该drag_check事件仅适用于外部节点,而不适用于树中的任何节点.要验证相同的树节点,我们需要使用crrm -> check_move事件.这是我需要帮助的地方.如果节点在之前或之后被丢弃,我想返回false [Root].
这是开始的小提琴 - http://jsfiddle.net/juyMR/23/
在当前版本的jstree(3.0.1)中,有一个更简单的解决方案,您必须使用的一切
"types" : {
"#" : {
"max_children" : 1
}
},
Run Code Online (Sandbox Code Playgroud)
如果您使用的是类型插件,则有两种预定义类型.一个是上面使用的"#".这自动用于树的"真实"根元素,这意味着内部使用的元素.因此,如果您将自己的根添加为第一个节点而没有任何额外的配置,一切都会正常工作.
你已经非常接近了,你只需要一个 else 语句即可返回 true
http://jsfiddle.net/blowsie/juyMR/59/
"crrm" : {
"move" : {
"check_move" : function (data) {
// alert(data.r.attr("id"));
if(data.r.attr("id") == "999") {
return false;
}
else {
return true;
}
}
}
},
Run Code Online (Sandbox Code Playgroud)