我有一个功能齐全的动态树,其中数据通过 ajax(数据库源)加载,现在我为树启用了拖放功能。当一个项目被删除时,我会发出一个 ajax 请求来更新数据库,以便更新节点数据。但是我在 php 中做了几次检查,看看是否允许将节点放置在它的“新位置”上。
如果php拒绝删除节点的新位置,我如何恢复节点的原始位置?可以重新加载完整的树,但我想避免这种情况,只恢复特定项目。
我有一个功能齐全的动态树,其中数据通过 ajax(数据库源)加载,现在我为树启用了拖放功能。当一个项目被删除时,我会发出一个 ajax 请求来更新数据库,以便更新节点数据。但是我在 php 中做了几次检查,看看是否允许将节点放置在它的“新位置”上。
如果php拒绝删除节点的新位置,我如何恢复节点的原始位置?可以重新加载完整的树,但我想避免这种情况,只恢复特定项目。
好的,我找到了正确的方法来做到这一点。我只是向 php 发出 ajax 请求,但将其设置为同步(异步错误),因此 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);
}
这样节点只有在允许的情况下才会被移动,所以之后不需要恢复节点