我使用jQuery的模板,用於動態創建具有不同項目的列表(列)(它們也動態添加)頁面刷新,也創造了一個插件,它可以幫助移動項目從一個列表到第二或第三即使用jquery ui拖動&刪除,但在將項目拖放到新添加的列表時出現問題。問題移動新項目新增加的列表,直到我做
情景:當我點擊添加列表按鈕,在頁面上創建列表。所以我添加了一個名爲'list1'的列表,每個列表都有一個按鈕來添加列表中的項目,所以通過按兩次我在'list1'上添加了2個項目。項目是可移動/可拖放/可丟棄的。現在添加了名爲'list2'的第二個列表。因此,如果我嘗試將項目從「list1」移動到「list2」,則不會執行該操作,而是將項目移至「list1」。這發生在沒有頁面重新加載的情況下,但是如果我刷新頁面並且現在執行相同的操作,則該項目可以被移動到'list2'。下面是我使用的拖放目的的代碼如下(下面的代碼放在我的jQuery插件):
var id = $('.' + options.dropID);
var id0 = options.dropID;
$('.' + options.dropID).sortable({
helper: "clone",
revert: "invalid", // go back to original droppable when drop outside drop area
connectWith: '.' + options.dropID,
over: function (event, ui) {
// may be usefull
var sortableElement = this;
var dataToSave = {
name: ui.item.text(),
objid: ui.item.attr('title'), // id has changed for array so use original id stored in title
thisID: $(sortableElement).attr('id'),
array: $(sortableElement).sortable("serialize")
};
// save the new data
saveData(dataToSave);
}
});
所以我注意到一個現象是,不同的行爲是在這裏: - 增加一個項目並沒有頁面加載,它加入以下的div
<div id="337" class="cardItem droppable"> </div>
所以,如果我嘗試添加此項目不允許我。
頁面加載之後,修改上面div來:
它增加了用戶界面可排序以類屬性。所以我試着搜索這個ui-sortable
如何或何時被添加,它是通過jquery的可排序方法完成的。
,並在頁面加載我打電話這樣的插件:
<script type="text/javascript">
$(window).bind("load", function() {
$('.laneList').ListDragandDrop();
});
</script>
我還調用ListDragandDrop()添加新的列表或項目之後,但它不添加ui-sortable
到div,我必須刷新頁面,以便它可以使'list2'可丟棄。你能告訴我我做錯了什麼,或者我應該修改什麼來使其工作。