2012-02-24 49 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