2012-02-24 35 views
0

我正在使用mootools排序來處理一個簡單的圖像庫函數。如果將圖像從左列移動到右列,則該照片將通過onComplete事件中的storeImage調用添加到用戶的「照片」表中。恢復mootools可排序移動

下面是它的一個簡單的小提琴:http://jsfiddle.net/JQja3/1/

我的問題是,如果從onComplete時間的storeImage調用失敗,我怎麼能還原圖像回到「可用」左棧?

回答

1

您需要將組和父母存儲在var然後恢復,這將完全恢復舊的組和命令。

這種模式將創建一個恢復功能,可以撤消它 - 每一次。

http://jsfiddle.net/JQja3/6/

new Sortables('#example2 UL', { 
    clone: true, 
    revert: true, 
    opacity: 0.7, 
    onStart: function(el, clone) { 
     this.restore = (function() { 
      var oldParent = el.getParent(), 
       oldList = oldParent.getChildren();  
      return function() { 
       oldParent.adopt(oldList); 
      } 
     })(); 

    }, 
    onComplete: function(el, clone){ 
     var storeImage = false; // this is false to simulate a bad return from the DB store call 
     if (!storeImage){ 
      this.restore(); 
     }  
    } 
}); 
+0

+1非常整齊的解決方案,我知道我學到了答案的東西這一次,我花了好幾分鐘,我的頭輪它雖然,JavaScript是如此不同我習慣的其他語言。 – Dampsquid 2012-02-26 13:22:31

+0

@Dimitar Christoff--感謝您一如既往的快速徹底解決方案! – julio 2012-02-28 23:50:16