Как отличить падение от перетаскивания

1

Когда операция перетаскивания HTML5 заканчивается в другом окне, событие " Drop запускается в целевом окне, и событие DragEnd запускается на перетаскиваемом элементе в окне источника.

Для копирования и перемещения цель капли выполняет операцию копирования с использованием данных, переносимых e.dataTransfer, а для операции перемещения элемент должен быть удален в исходном окне.

Когда событие срабатывает в исходном окне, как должен обработчик DragEnd определить, завершилась ли операция капли или была прервана?

Недостаточно знать, выполняется ли операция копирования или вырезания; операция разреза удаляет элемент из источника только тогда, когда ему удастся в пункте назначения. Это, если хотите, транзакционное.

Теги:
drag-and-drop

1 ответ

0

Я нашел ответ в mdn. Перейдите по ссылке и прокрутите вниз до раздела Завершение перетаскивания. К сожалению, эта информация не DragEnd ни в документах DragEnd ни в документах DataTransfer.

После завершения перетаскивания в источник перетаскивания запускается событие dragend (тот же элемент, который получил событие dragstart). Это событие сработает, если [drag] было успешным [или] отменено. Однако вы можете использовать свойство dropEffect, чтобы определить, что произошло.

Если свойство dropEffect имеет значение none во время перетаскивания, то сопротивление было отменено. В противном случае эффект определяет, какая операция была выполнена. Источник может использовать эту информацию после операции перемещения для удаления перетаскиваемого элемента из старого местоположения.

Акцент и ремонт структуры предложений и грамматики - мои.

Safari 8 полностью сломан. Он всегда сообщает "none" как эффект падения в событии drop.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню