4

我在拖动列表中有一个项目池,它使用 connectToSortable 选项连接到可排序的项目。现在我想从这个排序列表中删除一些项目并将它们移回拖动列表。有点像撤消。假设用户将一些 5 个项目移动到排序列表并决定他/她只想要 4 个项目,并决定只将不需要的项目从排序列表拖到拖动列表中。如何在排序列表中不添加“删除”链接的情况下完成此操作。非常感谢。有关更多信息,请参阅http://the-stickman.com/web-development/javascript/jquery-dropping-items-from-a-draggable-list-to-a-sortable-list/

4

2 回答 2

5

这个jQuery UI 示例看起来就像您所追求的。它具有两个连接列表,用户可以在它们之间拖动元素。

但我怀疑您的情况与示例不符。假设您有一个拖动列表,每个 LI 的 UL 都可拖动并链接到另一个 UL 可排序(有关示例,请参见此链接)。每次从拖动列表中拖动某些东西时,都会对拖动的元素使用克隆。使用“out”事件,您可以在将项目拖到可排序列表之外时进行注册,如果在触发“停止”事件时该项目仍在外部,则将其从可排序列表中删除。使用可排序小部件的 ui.position 和 ui.offset 属性,您可以确定项目是否在实际从可排序中删除项目之前被拖动到拖动列表上。

希望这可以帮助。

于 2009-06-19T04:31:14.380 回答
0

我认为最简单的解决方案是使您的可拖动列表也可放置,并处理该放置事件。我有一个#priority_articles_list可排序和li.article可抓取的,它们在里面#articles。在最简单的情况下,您可以调用ui.draggable.remove();,这应该可以解决问题。

$("#articles").droppable({
  accept: '#priority_articles_list > li',

  drop: function(ev, ui) {
    draggable_id = "#" + ui.draggable.attr("id").replace("priority_", "");
    $(draggable_id).removeClass("shouldnt_drag");
    ui.draggable.remove();
    if ($("#priority_articles_list").children("li").length == 1) {
      $("#priority_articles p").show();
    }
  }
});
于 2010-07-06T11:19:49.783 回答