HTML5拖放,尝试确定是否允许放置元素。
所以根据这个:
http://dev.w3.org/html5/spec-preview/dnd.html#dndevents
您无法在dragover上阅读DataTransfer数据存储。因为dragover是你应该取消的事件,表示你接受了一个掉落 - 并且假设在dragOver期间你不知道被拖动的是什么,这应该如何工作?我错过了一些明显的东西吗?
似乎你必须取消dragover / dragenter,如果有可能被拖动的东西可能被丢弃在你的元素上,但你只能找到被拖拽的东西。
答案 0 :(得分:0)
所以 - 我们找到了一种方法来做到这一点。
您可以读取dataTransfer.types属性,该属性返回通过setData添加的类型列表。因此,如果您使用自定义字符串作为其中一种类型,则可以检查以确认是否存在您添加的拖动数据。
e.g。
event.dataTransfer.setData("SpecialNameOfDragSource", data);
然后在dragover中你可以看到这种类型是否存在:
function ondragover(ev) {
if (ev.dataTransfer.types && ev.dataTransfer.types.indexOf("SpecialNameOfDragSource") > -1) {
// cancel the event
}
}