1

我有一个功能齐全的动态树,其中数据通过 ajax(数据库源)加载,现在我为树启用了拖放功能。当一个项目被删除时,我会发出一个 ajax 请求来更新数据库,以便更新节点数据。但是我在 php 中做了几次检查,看看是否允许将节点放置在它的“新位置”上。

如果php拒绝删除节点的新位置,我如何恢复节点的原始位置?可以重新加载完整的树,但我想避免这种情况,只恢复特定项目。

4

1 回答 1

1

好的,我找到了正确的方法来做到这一点。我只是向 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);
}

这样节点只有在允许的情况下才会被移动,所以之后不需要恢复节点

于 2012-12-20T10:21:03.043 回答