我有一个完整的功能性dynatree,其中数据通过ajax(数据库源)加载,现在我启用了树的拖放功能。当项目被删除时,我会执行ajax请求来更新数据库,以便更新节点数据。但是我在php中做了几个检查,看看是否允许将节点放在它的“新位置”上。
如果php拒绝删除节点的新位置,我该如何恢复节点的原始位置?完整的树重新加载是可能的,但我想避免这种情况,只需恢复特定的项目。
答案 0 :(得分:1)
好的,我发现了一种正确的方法。我只是向php发出ajax请求,但将其设置为同步(async false),因此dynatree代码将等待结果。然后我实现了对dynatree的移动功能的检查:
$.ajax({
url: "xxx,
async: false,
success: function(data){
if(data.error == 0){
showModalOk(data.message);
phpres = true;
}else
phpres = false;
}
}
});
if(phpres == true){
sourceNode.move(node, hitMode);
node.expand(true);
}
这样,节点只有在允许的情况下才会被移动,因此之后不需要恢复节点