jQuery Draggable упал на 2 капли. нужен только один

У меня небольшая проблема с перетаскиванием с помощью jQueryUI (самые последние версии).

У меня есть таскание, это не все, что особенное. У меня есть 2 места для дропа, но они не родительские.

Первый сбрасывается прямо над вторым. Вторая буква находится внутри прокручиваемого div. И проблема возникает, когда этот div немного прокрутился вниз. Когда div прокручивается, вторая буква эффективно перемещается вверх, но это скрыто.

Используя инспектор элементов в Chrome, я вижу, что он подсвечен.

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

Использование "greedy: true", похоже, не работает, скорее всего потому, что они не являются родительскими.

Порядок, в котором они уволены, предсказуем. Сначала срабатывает первый (видимый сбрасываемый), затем второй (которого вы на самом деле не видите).

Есть ли способ предотвратить второй сбрасываемый огонь?

jsfiddle example

http://jsfiddle.net/vQuZf/1/

1 ответ

Решение

Посмотрев немного дальше, я обнаружил, что в настоящее время есть 2 возможных решения:

1) перемещать элементы на странице таким образом, чтобы перекрытия больше не было. Таким образом, вы не получите "двойную каплю".

2) добавить некоторый пользовательский код в droproable, который также запускается при удалении. Это должно пометить удаленный элемент с отметкой времени, когда он последний раз удалялся. Другой элемент может проверить это, и если он был удален в течение X секунд, он должен игнорировать сброс.

Для решения 2 возможны разные реализации, но все они будут похожи в том смысле, что первая должна пометить отброшенный элемент, чтобы вторая могла это проверить.

В моем случае я выбрал решение № 1, так как это лучшее решение, которое в любом случае оказывается лучшим макетом страницы.

Другие вопросы по тегам