Javascript jsTree:Prevent-before和after类型,仅在内部使用

Javascript jsTree:Prevent-before和after类型,仅在内部使用,javascript,jquery,tree,jstree,Javascript,Jquery,Tree,Jstree,我用的是非常好的。拖放时,我并不真正关心前后类型,我只想在内部使用。也就是说,我只关心孩子被放入的父对象,而不是父对象中其他元素的顺序 所以,我想构建我的回调,所以它总是引用它所在的父节点。但是,这并不是万无一失的 onmove : function (NODE,REF_NODE,TYPE,TREE_OBJ,RB) { if (TYPE == 'inside') { alert('Item to move:'+$(NODE).attr('rel')+' to '+$(RE

我用的是非常好的。拖放时,我并不真正关心前后类型,我只想在内部使用。也就是说,我只关心孩子被放入的父对象,而不是父对象中其他元素的顺序

所以,我想构建我的回调,所以它总是引用它所在的父节点。但是,这并不是万无一失的

onmove : function (NODE,REF_NODE,TYPE,TREE_OBJ,RB) {
    if (TYPE == 'inside') {
        alert('Item to move:'+$(NODE).attr('rel')+' to '+$(REF_NODE).attr('rel')+' '+TYPE);
    } else if (TYPE == 'after') {
        alert('Item to move:'+$(NODE).attr('rel')+' to '+$(REF_NODE).parent().parent('li').attr('rel')+' '+TYPE);
    }
},
是否有人对我如何更改回调有什么建议,以便REF_节点始终是节点移动到的父节点?而不是兄弟姐妹,哪一个是父母的孩子

以下是关于jsbin的一个示例:


尝试此示例时,请将其他文件夹拖到Templates文件夹上。应提醒您正在将其他文件夹移动到文件夹4中。但是,如果在拖动到Templates文件夹之前和之后尝试不同的操作,则有时会出现未定义的情况。因此,结果并不总是如预期的那样。正如我所说,我总是想知道另一个文件夹被放入的父文件夹,在本例中为4。

摘自jstree常见问题解答,这可能对您有所帮助:

在“内部”移动或创建节点时 另一个节点是回调REF\u节点 不指向新的父节点。 怎么办

这不是虫子!因为你可以 在特定位置创建节点 在父节点的子节点中, 仅传递父节点将不起作用 够了。这就是为什么你必须 检查传递给 回电!如果你想一直工作 使用父节点–添加此行 在回调的顶部:


例如jsbin上的小样本会有所帮助。你说的不是傻瓜式的是什么意思。在哪些情况下不起作用?
if(TYPE != "inside") { 
  TYPE="inside"; 
  REF_NODE = $(NODE).parents("li:eq(0)").get(0); 
}