我正在尝试使用 HTML5可拖动 API (尽管我意识到它是 有它的问题)。到目前为止,我遇到的唯一的阻碍是,我不能找到一种方法来确定当 dragover
或 dragenter
事件触发时被拖动的是什么:
el.addEventListener('dragenter', function(e) {
// what is the draggable element?
});
我意识到我可以假设它是触发 dragstart
事件的最后一个元素,但是... 多点触摸。我也尝试过使用来自 dragstart
的 e.dataTransfer.setData
来连接唯一标识符,但显然这个数据是来自 dragover
/dragenter
的 无法接近:
此数据只有在放置事件期间发生放置时才可用。
有什么想法吗?
更新: 在撰写本文时,HTML5的拖放功能似乎还没有在任何主流的移动浏览器中实现,这使得多点触摸在实践中变得毫无意义。但是,我希望有一个解决方案能够保证在 说明书的任何实现中都能正常工作,它似乎不会阻止同时拖动多个元素。
我已经在下面贴出了 有效的解决办法,但它是一个丑陋的黑客。我仍然希望有一个更好的答案。