Я пытаюсь использовать HTML5 draggable API (хотя я понимаю, что имеет свои проблемы). До сих пор единственный showstopper, с которым я столкнулся, заключается в том, что я не могу определить способ определения того, что перетаскивается, когда срабатывает событие dragover
или dragenter
:
el.addEventListener('dragenter', function(e) {
// what is the draggable element?
});
Я понимаю, что могу предположить, что это последний элемент для запуска события dragstart
, но... multitouch. Я также попытался использовать e.dataTransfer.setData
из dragstart
для присоединения уникального идентификатора, но, по-видимому, данные недоступны из dragover
/dragenter
:
Эти данные будут доступны только после того, как произойдет падение во время события drop.
Итак, любые идеи?
Обновление:. На момент написания этой статьи перетаскивание HTML5, похоже, не реализовано ни в одном крупном мобильном браузере, что на практике указывает на мультитач. Тем не менее, я хотел бы, чтобы решение, которое гарантировало работу над любой реализацией спецификации, которая, как представляется, не позволяет одновременно перетаскивать несколько элементов.
Я разместил рабочее решение ниже, но это уродливое взломать. Я все еще надеюсь на лучший ответ.