我使用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'可丢弃。你能告诉我我做错了什么,或者我应该修改什么来使其工作。