【发布时间】:2012-02-14 15:16:05
【问题描述】:
我有一个包含不同可拖动元素的容器,并且有一些“目标”div 的列表,用户可以在其中放置可拖动元素。
示例:
想象一下,您有一个“标签”列表(房屋、计算机、汽车、..)和一些作为目标的文档列表(所有文档都是 div <div id="doclist"> 的一部分)。因此,目标是使用拖放将“标签”分配给文档。顺便说一句,每个 tag-Div 都有一个唯一的 id (<div id="e34a568b2">)
使“标签”可拖动的代码:
$('#taglist').find('div').draggable(
{helper: "clone"});
使文档“可放置”的代码:
$('#doclist').droppable({
drop: function( event, ui )
{tag=ui.draggable;
tag.clone().appendTo( this );
} });
到目前为止,这很好用。 问题是,现在您可以将相同的标签多次分配给相同的文档。 示例:文档 1 可以得到标签“房子”5 次,标签“电脑”3 次。
我的目标是,每个文档只能有每个标签一次。
我不知道,如何解决这个问题。现在,我认为有办法:
1.) 通过遍历 DOM $(this).find... 来扩展“drop”功能,以查看是否存在具有相同 id 的元素 - 在这种情况下,不要再次克隆和追加。可能这需要很多性能。
2.) 使用可拖动小部件的“接受”功能。但我不知道在这种情况下如何使用它。
感谢您的任何帮助。
【问题讨论】:
-
你能提供一个关于jsfiddle的小提琴吗?
标签: jquery jquery-ui drag-and-drop draggable droppable