後,克隆可放開/排序列表基本上我有拖動的項目列表,最初一個投擲的元素他們被拖進。當一個物品被拖入可投放區時,該可投放物被克隆(在物品被添加之前)並作爲新的可投放區被追加。jQuery UI的 - 丟棄事件
在這個剝離下來小提琴看看: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在功能和運行在下降事件的功能,但我什麼也沒得到。
最後,我希望能夠拖動和「池」列表和克隆的清單自身之間和克隆的列表之間的下降,以及克隆列表中的項目進行排序。
完美的作品,謝謝。我想我現在理解clone()好一點了。我確實讀過關於插件的那部分內容,但我對它有所瞭解。這部分原因是爲什麼我嘗試做類似的遞歸函數失敗。 是否可以添加sortable()到這個?我只是將它鏈接在droppable()函數的末尾,但draggable()在拖動事件上佔優先。 – Bobe
@Bobe - 很高興幫助。有可能有sortable()和droppable()一起工作。如果您遇到問題,您可能想要發佈一個新的SO問題。如果你這樣做,你可以在這裏發表評論中的鏈接,我會看看。 – acarlon
我花了很多時間,但沒有得到我追求的結果。如果您想查看一下,我已經創建了一個新問題:http://stackoverflow.com/questions/20986157/jquery-ui-make-draggable-element-sortable-within-droppable – Bobe