Ограничение перетаскивания пользовательского интерфейса

#jquery #jquery-ui

#jquery #jquery-пользовательский интерфейс

Вопрос:

Я удалил свой последний пост и полностью перефразировал свой вопрос. Я хочу ограничить перетаскиваемый объект, чтобы одновременно использовать только 1 перетаскиваемый объект

Пример: у меня есть 3 перетаскиваемых поля и 2 перетаскиваемых целевых поля. Я пытаюсь ограничить выпадающие поля только для одновременного приема элементов. Я не хочу отключать выпадающее окно, я хочу определить, сколько вы можете добавить к нему только 1. Мне нужно расширяемое решение. Я также пытаюсь отслеживать, где вы отбрасываете поле.

Спасибо за вашу помощь.

Ответ №1:

Я думаю, вам нужно предоставить пользовательскую функцию для accept опции droppable

http://jqueryui.com/demos/droppable/#option-accept

Таким образом, он принимает первый отброшенный элемент и проверяет, содержит ли перетаскиваемый контейнер уже другой элемент, возвращает false, чтобы следующий элемент был отклонен.

Поскольку перетаскиваемый элемент не physically перемещается в область удаления после удаления, довольно сложно определить его существование в области удаления. Вы можете попытаться последовать примеру photo manager и фактически переместить элемент dom в область после удаления. http://jqueryui.com/demos/droppable/#photo-manager

Таким образом, с помощью обратного вызова accept можно проверить, содержит ли область перетаскивания уже один из элементов, и отклонить, если ответ положительный. Я использовал менеджер фотографий, чтобы сделать пример здесь.

http://jsfiddle.net/Quincy/rAcWK/

Комментарии:

1. Можете ли вы подробнее рассказать? Я хочу, чтобы он принимал 1 перетаскиваемый за раз, а не только 1 период. Я играл с accept и не смог прийти к решению. Мне также нужно решение, если вы переместите поле из цели удаления и попытаетесь переместить другое поле, будет ли с этим беспорядок?