答案 0 :(得分:6)
如果您使用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
中setData
的参数,而是使用Text
或在try...catch
内添加数据。此外,您应该确保您添加的数据实际上是文本:
e.dataTransfer.setData("Text", "" + $(e.target).index());
最后,您的handleDrop
函数需要preventDefault
/ return false
,否则删除链接(a
元素`)的默认操作是导航到已删除的网址:
function handleDrop(e) {
alert($(e.target).index());
if (e.preventDefault) {
e.preventDefault(); // Necessary. Stops redirect.
}
return false;
}