撤消拖放项目

时间:2012-12-19 13:33:27

标签: dynatree jquery-dynatree

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

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

1 个答案:

答案 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);
}

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