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
    }
 }
Другие вопросы по тегам