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