В принципе, у меня есть список перетаскиваемых элементов и изначально один элемент с возможностью перетаскивания для их перетаскивания. Когда элемент перетаскивается в droppable, droppable клонируется (перед добавлением элемента) и добавляется как новая область с возможностью удаления.jQuery UI - Clone droppable/sortable list after drop event
Взгляните на этой усеченную скрипке: http://jsfiddle.net/DKBU9/1/ (опущено сортируемых())
HTML
<ul id="draggables">
<li>foo1</li>
<li>foo2</li>
<li>foo3</li>
</ul>
<ul class="droppable new">
</ul>
JS
$('#draggables > li').draggable({
appendTo: 'document',
revert: 'invalid'
});
$('.droppable > li').draggable({
appendTo: 'document',
revert: 'invalid'
});
$('#draggables').droppable({
accept: '.droppable > li',
drop: function(event, ui) {
ui.draggable.detach().css({top: 0,left: 0}).appendTo($(this));
}
});
$('.droppable').droppable({
accept: '#draggables > li',
drop: function(event, ui) {
if($(this).hasClass('new')) {
var clone = $(this).clone(true, true);
$(this).removeClass('new').after(clone);
}
ui.draggable.detach().css({top: 0,left: 0}).appendTo($(this));
}
});
Как вы можете видеть, перетаскивание работы для исходных элементов, но не сохраняется в клоне. Я подумал, что clone(true, true)
скопировал соответствующие и дочерние элементы и их обработчики событий.
Я даже попытался поместить вышеуказанный JS в функцию и запустить эту функцию в событиях капли, но я ничего не получил.
В конечном счете, я хочу иметь возможность перетаскивать между списком «пул» и клонированными списками и между самими клонированными списками, а также сортировать элементы в клонированных списках.
Работает отлично, спасибо. Думаю, теперь я понимаю, что клон() немного лучше. Я прочитал эту часть о плагинах, но я как бы просмотрел ее. Это было бы отчасти потому, что моя попытка выполнить подобную рекурсивную функцию не удалась. Можно ли добавить сортировку() на это? Я просто привязал его в конце функции droppable(), но draggable() имеет прецедент в событии перетаскивания. – Bobe
@Bobe - Счастливые помочь. Возможно, что sortable() и droppable() работают вместе. Возможно, вы захотите дать ему возможность опубликовать новый вопрос, если у вас есть проблемы с ним. Если вы это сделаете, вы можете опубликовать ссылку в комментариях здесь, и я посмотрю. – acarlon
Я потратил много времени на это, но просто не смог получить результат, который мне нужен. Я задал новый вопрос, если вы хотите посмотреть: http://stackoverflow.com/questions/20986157/jquery-ui-make-draggable-element-sortable-within-droppable – Bobe