0

У меня есть некоторые div, которые пользователь может переместить в target-div. Если они будут сброшены, там будет добавлен новый div. Но теперь пользователь должен иметь возможность делать это снова и снова. Но после того, как клон был сброшен (где бы то ни было - не только в droppable), исходный элемент теряет способность падать. Как я могу изменить его, чтобы пользователи могли перемещать исходный элемент много раз в target-div?JQuery UI: перетаскиваемый элемент теряет способность перетаскивать/удалять после клонирования

В следующем коде показан пример сценария, который работает exakt 1 раз. После одной капли первая часть больше не работает. Я попытался добавить эту функцию снова после отказа без успеха.

$('.move-me').draggable({ 
    revert: "invalid", 
    helper: "clone" 
    }); 

    $('#target').droppable({ 
    accept: '.move-me', 
    drop: function (event, ui) { 
     $(this).append('<div>You dropped an element here</div>'); 
    } 
    }); 
+0

'$ ('# target'). Droppable ({' Вы не клонируете этот идентификатор, не так ли? Вы можете использовать только ** ONE ** для каждого идентификатора. –

+0

Я использую только хелпер-клон, '.move-me'-element размещается все время в стартовом месте, и можно использовать функцию droppable. Если «clone» отбрасывается, он исчезает. Новый div добавляется без какого-либо идентификатора или ссылки на' .move-me'-element. – Gersee

ответ

0

Я только что изменил свой код с возможностью замены. Пожалуйста, проверьте один раз.

$('.move-me').draggable({ 
    revert: "invalid", 
    helper: "clone", 
    cursor : "move", 
    }); 

    $('#target').droppable({ 
    accept: '.move-me', 
    drop: function (event, ui) { 
// Make sure you are cloning your draggable and use that div to modify as per your requirement 
    var html = $(ui.draggable).clone(true); 
    ui.draggable.draggable('enable'); 
     $(this).append('<div>You dropped an element here</div>'); 
    } 
    }); 

Рад, если это сработает.

+0

Пробовал, но ничего не меняет. Все еще не может перемещать элемент снова. – Gersee

0

У меня была та же проблема. Я отсортировал этот вопрос, обновив правило css. Я отбрасывал элемент в div, у которого был более высокий индекс z, чем выпавший элемент. Я просто добавил класс и установил значение z-index больше, чем значение контейнера drop. Это решило мою проблему.

Надеюсь, это поможет, если какой-либо из вышеперечисленных ответов не сработает.

0

Я знаю, что это немного поздно, но кажется, что если вы снова вызовете draggable(), он должен находиться вне функции готовности документа. Я перешел за пределы готовой функции, когда я снова ее назвал, и это сработало как шарм.

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