2012-02-24 2 views
0

Я использую mootools sortable для обработки простой функции галереи изображений. Если вы перемещаете изображение из левого столбца в правый столбец, фотография добавляется в таблицу «фотографии» пользователя путем вызова storeImage в событии onComplete.revert mootools sortable move

Вот простая скрипка из него: http://jsfiddle.net/JQja3/1/

Моего вопрос, если storeImage вызов из события OnComplete выходит из строя, как я могу вернуть изображение обратно в «доступный» левом стек?

ответ

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

+0

@ Dimitar Christoff - спасибо, как всегда, за быстрое и тщательное решение! – julio