返回列表 發帖
回復 1# test155

嗯,應該是需要。
To infinity and beyond!

TOP

這樣講不太清楚,有沒有實際的例子說明呢?
To infinity and beyond!

TOP

嗯,這樣有比較清楚了,我本來以為你要把 list2 內的項目拖曳回 list1 時,把 list1 的給刪掉...

這樣的話還是可以在拖曳到 list2 後,動態變成為 dragable 物件,讓他可以再被拖曳,至於要拖曳到哪裡算是刪除,就看你的設計囉。
To infinity and beyond!

TOP

回復 7# test155

拖曳到 #list2 之後,把新的 li 也建立為 draggable 物件即可拖曳。並設定為拖曳到 body 就刪除。
$("#list1 li").draggable({helper: 'clone',revert: true});
$("#list2").droppable({
    accept: '#list1 li, #list2 li',
    drop: function(ev, ui) {
        if (ui.draggable.parent().attr("id") == "list2") {
            var $a = $(ui.draggable);
        } else {
            var $a = $(ui.draggable).clone();
        }
        $(this).append($a);
        $a.draggable();
    }
});
$('body').droppable({
    accept: '#list2 li',
    drop: function(ev, ui) {
        $a = $(ui.draggable);
        $(this).append($a);
        $a.remove();
    }
});
To infinity and beyond!

TOP

嗯,所以我的程式中有一段 if else 就是在做這件事。
至於實做內容就看你的實際需要。
To infinity and beyond!

TOP

所以你從 #list2 拖曳出來時不能 clone 喔...
To infinity and beyond!

TOP

請參考我先前的範例
To infinity and beyond!

TOP

你這情況又不太一樣,sortable 本身就會複製,所以你的 list2 只需要針對來自list1 的做複製。
另外你 JavaScript 內的 id 打錯,不用加上 #
if (ui.draggable.parent().attr("id") != "list2") {
    var $a = $(ui.draggable).clone();
    $(this).append($a);
    $a.draggable();
}
To infinity and beyond!

TOP

返回列表 回復 發帖