2016-12-01 2 views
3

Я хотел бы получить помощь по следующей ситуации.Перетащите его, опустите и снова перетащите, возвращаясь в исходное положение.

У меня есть два столбца, один содержит числа, а другой - их перетаскивание.

Левый столбец можно перетаскивать, а правый столбец. Я хотел бы сделать правую колонку перетаскиваемой, так что, если пользователи передумают, они могут перетащить ее обратно в левый столбец и начать заново.

$('.draggable').draggable({ 
    revert: true 
}); 

$('.droppable').droppable({ 
    drop: function(e, ui) { 
    $(this).html(ui.draggable.html()); 
    $(ui.draggable).html(''); 
    } 
}); 

The issue

Пожалуйста см jsfiddle ссылку: Jsfiddle

+0

Просто сделать все дивы как ' draggable' и 'droppable'. Кажется, он работает отлично, если нет более конкретной проблемы. – CollinD

+0

Если я это сделаю, перейдя в правый столбец и снова перетащив, я не смогу отбросить его назад или на ту же позицию ни в исходное положение. –

ответ

2

Я сделал бы функции, которые вы можете передать объект для включения перетаскивания. Таким образом, это делает его легко сделать один тащили пункт перетаскиваемым снова, и это источник Droppable и т.д.

Рабочий пример: https://jsfiddle.net/Twisty/nuopmqnb/

JQuery

$(function() { 
    function makeDrag($o) { 
    $o.draggable({ 
     revert: true, 
     stop: function(e, ui) { 
     if (!$(this).find("img").size()) { 
      $(this) 
      .removeClass("draggable") 
      .addClass("droppable") 
      .draggable("destroy"); 
      makeDrop($(this)); 
     } 
     } 
    }); 
    } 

    function makeDrop($o) { 
    $o.droppable({ 
     drop: function(e, ui) { 
     var $img = $("<img>", { 
      src: ui.draggable.find("img").attr("src") 
      }), 
      $target = $(e.target); 
     ui.draggable.html(""); 
     $target.html($img); 
     $target.droppable("destroy"); 
     makeDrag($target); 
     return false; 
     } 
    }); 
    } 

    makeDrag($('.draggable')); 
    makeDrop($('.droppable')); 
}); 
+0

Это именно то, чего я хотел достичь! Спасибо за вашу помощь! Между тем я сделал еще одно решение, но это было немного ошибкой, и это работает без всяких сомнений. –

Смежные вопросы