我正在尝试使用HTML5可拖动的API(虽然我意识到它有它的问题).到目前为止,我遇到的唯一一个显示是我无法找到一种方法来确定当一个dragover或dragenter事件触发时被拖动的内容:
el.addEventListener('dragenter', function(e) {
// what is the draggable element?
});
Run Code Online (Sandbox Code Playgroud)
我意识到我可以认为它是发射dragstart事件的最后一个元素,但是......多点触控.我也试着使用e.dataTransfer.setData从dragstart附加一个唯一的标识符,但显然这些数据是不可访问从dragover/ dragenter:
只有在丢弃事件期间发生丢弃时,才能使用此数据.
那么,有什么想法吗?
更新:在撰写本文时,HTML5拖放似乎没有在任何主流移动浏览器中实现,因此在实践中提出了关于多点触控的观点.但是,我想要一个可以保证在规范的任何实现中都能使用的解决方案,这似乎不会阻止同时拖动多个元素.
我在下面发布了一个有效的解决方案,但这是一个丑陋的黑客攻击.我仍然希望有更好的答案.