jQuery Draggable упал на 2 капли. нужен только один
У меня небольшая проблема с перетаскиванием с помощью jQueryUI (самые последние версии).
У меня есть таскание, это не все, что особенное. У меня есть 2 места для дропа, но они не родительские.
Первый сбрасывается прямо над вторым. Вторая буква находится внутри прокручиваемого div. И проблема возникает, когда этот div немного прокрутился вниз. Когда div прокручивается, вторая буква эффективно перемещается вверх, но это скрыто.
Используя инспектор элементов в Chrome, я вижу, что он подсвечен.
Теперь, когда я бросаю перетаскиваемый предмет на первый, оба сбрасываемых предмета запускаются, но я хочу, чтобы стрелял только первый.
Использование "greedy: true", похоже, не работает, скорее всего потому, что они не являются родительскими.
Порядок, в котором они уволены, предсказуем. Сначала срабатывает первый (видимый сбрасываемый), затем второй (которого вы на самом деле не видите).
Есть ли способ предотвратить второй сбрасываемый огонь?
jsfiddle example
1 ответ
Посмотрев немного дальше, я обнаружил, что в настоящее время есть 2 возможных решения:
1) перемещать элементы на странице таким образом, чтобы перекрытия больше не было. Таким образом, вы не получите "двойную каплю".
2) добавить некоторый пользовательский код в droproable, который также запускается при удалении. Это должно пометить удаленный элемент с отметкой времени, когда он последний раз удалялся. Другой элемент может проверить это, и если он был удален в течение X секунд, он должен игнорировать сброс.
Для решения 2 возможны разные реализации, но все они будут похожи в том смысле, что первая должна пометить отброшенный элемент, чтобы вторая могла это проверить.
В моем случае я выбрал решение № 1, так как это лучшее решение, которое в любом случае оказывается лучшим макетом страницы.