我正在尝试使用HTML5可拖动API(尽管我意识到它有问题)。到目前为止,我遇到的唯一的难题是,我无法找到一种方法来确定当dragover
ordragenter
事件触发时正在拖动的内容:
el.addEventListener('dragenter', function(e) {
// what is the draggable element?
});
我意识到我可以假定这是触发dragstart
事件的最后一个元素,但是...多点触控。我也尝试过使用e.dataTransfer.setData
fromdragstart
来附加一个唯一的标识符,但是很显然,无法从dragover
/访问数据dragenter
:
仅在放置事件期间发生放置时,此数据才可用。
那么,有什么想法吗?
更新:在撰写本文时,似乎没有在任何主要的移动浏览器中实现HTML5拖放,这实际上是关于多点触控的。但是,我希望有一个解决方案能够保证在该规范的任何实现中都可以使用,但这似乎并不妨碍同时拖动多个元素。
我在下面发布了一个可行的解决方案,但这是一个丑陋的hack。我仍然希望有一个更好的答案。