HTML 5 drag and drop Как выяснить, принимает ли элемент перетаскивание
HTML5 перетаскивает, пытаясь решить, разрешить ли перетаскивание на элемент.
Итак, согласно этому:
http://dev.w3.org/html5/spec-preview/dnd.html
Вы не можете прочитать DataSransfer dataStore на dragover. Так как dragover - это событие, которое вы должны отменить, чтобы указать, что вы принимаете сброс - и, учитывая, что во время dragOver вы не можете определить, что происходит, как это должно работать? Я что-то упускаю здесь очевидное?
Похоже, что вы должны отменить dragover / dragenter, если есть шанс, что перетаскиваемый объект может быть сброшен на вашем элементе, но вы можете узнать только то, что перетаскивалось в перетаскивании.
1 ответ
Итак - мы нашли способ сделать это.
Вы можете прочитать свойство dataTransfer.types, которое возвращает список типов, добавленных через setData. Поэтому, если вы используете пользовательскую строку в качестве одного из этих типов, вы можете проверить это, чтобы проверить существование данных перетаскивания, которые вы добавили.
например
event.dataTransfer.setData("SpecialNameOfDragSource", data);
Затем в drago ver вы можете увидеть, существует ли этот тип:
function ondragover(ev) {
if (ev.dataTransfer.types && ev.dataTransfer.types.indexOf("SpecialNameOfDragSource") > -1) {
// cancel the event
}
}