2012-12-19 92 views
1

我有一個全功能dynatree,其中數據通過ajax(數據庫源)獲取加載,現在我啓用了對樹的拖放功能。當一個項目被刪除時,我做了一個Ajax請求來更新數據庫,以便更新節點數據。但我在php中做了幾次檢查,看看是否允許節點放在它的「新位置」上。撤消項目的拖放

如何恢復節點的原始位置如果php拒絕節點被丟棄的新位置?完整的樹重新加載是可能的,但我想避免這種情況,只是恢復特定的項目。

+0

你能保存該項目的位置和然後重新分配它,如果它被PHP拒絕? – rae1

回答

1

好吧,我找到了一個正確的方法來做到這一點。我只是做我的ajax請求到PHP,但將其設置爲同步(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); 
} 

這樣的節點只有當它允許被感動,所以沒必要恢復節點之後