记录在这里
o : item_3
r : item_2
p : inside
我用jQuery插件jDialog做的事情(或者你可以用一个简单的jAlert函数替换它):
.bind("move_node.jstree", function (e, data) {
var id = data.rslt.o.attr("id").replace("node_","");
var name = data.inst.get_text(data.rslt.obj);
jConfirm('Moving node name:' + name, 'dialog title'), function(answer) {
if (answer == true){
$.post("/js_trees/"+ id,
{
"_method" : "put",
"operation" : "moving_my_node",
"id" : data.rslt.o.attr("id").replace("node_",""),
"ref" : data.rslt.np.attr("id").replace("node_",""),
"position" : data.rslt.cp,
"title" : data.rslt.name,
"copy" : data.rslt.cy ? 1 : 0
},
function (r) {
if(!r.status) {
$.jstree.rollback(data.rlbk);
} else {
$(data.rslt.oc).attr("id", "node_" + r.id);
if(data.rslt.cy && oc.children("UL").length) {
data.inst.refresh(data.rslt.oc);
}
}
}
);
}else{
$.jstree.rollback(data.rlbk);
}
});
})
感谢您的回答。我检查了你说的话,但每次显示箭头(表示选择放置目标)时,它们都是3次调用prepare_move以及3个全部位置。 这是拖动一个节点到另一个时的输出: ○:ITEM_1 R:ITEM_2 号码:前 ○:ITEM_1 R:ITEM_2 号码:后 ○:ITEM_1 R:ITEM_2 号码:内部 因此,我无法确定哪个是正确的位置。 你明白我的意思吗?你能重现这个(我也使用jstree的最后一个版本)。 在此先感谢。 – Cedric 2011-02-21 08:37:52