我尝试在 HTML 中拖放。它在除 IE9 之外的所有浏览器中运行良好(无需在低于 IE9 的情况下运行)。在 IE9 中不会触发 ondrop 事件。
有什么帮助吗?这是我的代码。
提前致谢。
我尝试在 HTML 中拖放。它在除 IE9 之外的所有浏览器中运行良好(无需在低于 IE9 的情况下运行)。在 IE9 中不会触发 ondrop 事件。
有什么帮助吗?这是我的代码。
提前致谢。
如果你div
用a
标签替换它会起作用。但是,您还应该进行一些其他更改,首先通过在事件中返回来确保a
标签不是可点击的链接:false
onclick
<a class="div123" href="#" draggable="true"
ondragstart="handleDragStart(event)"
ondrop="handleDrop(event)"
ondragover="dragoveHandler(event)"
onclick="return false;">
HTML5 drag and drop
</a>
其次,IE9 不接受text/plain
in 的参数setData
,而是使用Text
或在 a 中添加数据try...catch
。此外,您应该确保您添加的数据实际上是文本:
e.dataTransfer.setData("Text", "" + $(e.target).index());
最后,您的handleDrop
函数需要preventDefault
/return false
因为否则删除链接(a
元素)的默认操作是导航到删除的 URL:
function handleDrop(e) {
alert($(e.target).index());
if (e.preventDefault) {
e.preventDefault(); // Necessary. Stops redirect.
}
return false;
}