jquery droppable -> избежать нескольких падений одного и того же объекта
У меня есть контейнер с различными draggable -элементами, и есть список некоторых "целевых" div, где пользователь может отбрасывать перетаскиваемые элементы.
Пример: представьте, у вас есть список «тегов» («Дом», «Компьютер», «Автомобиль»,…) и список некоторых документов в качестве целевого (все документы являются частью div<div id="doclist">
). Поэтому цель состоит в том, чтобы назначить «теги» документу с помощью перетаскивания. Кстати, каждый тег-Div имеет уникальный идентификатор (<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.) разверните функцию «drop», пройдя через DOM $ (this) .find ..., чтобы увидеть, есть ли элемент с таким же идентификатором - в этом случае не клонируйте и не добавляйте снова. Вероятно, это требует большой производительности.
2.) использовать функцию «принять» перетаскиваемого виджета. Но я не знаю, как использовать это в этой ситуации.
Спасибо за любую помощь.