0

HTML5 のドラッグ アンド ドロップ。要素へのドロップを許可するかどうかを判断しようとします。

したがって、これによると:

http://dev.w3.org/html5/spec-preview/dnd.html#dndevents

ドラッグオーバーで DataTransfer dataStore を読み取ることはできません。dragover は、ドロップを受け入れることを示すためにキャンセルするイベントであるため、dragOver 中は何がドラッグされているのかわかりません。これはどのように機能するのでしょうか? ここで明らかな何かが欠けていますか?

ドラッグされているものが要素にドロップされる可能性がある場合は、dragover/dragenter をキャンセルする必要があるようですが、ドロップでドラッグされたものしか見つけることができません。

4

1 に答える 1

0

そこで、私たちはこれを行う方法を考え出しました。

setData を介して追加された型のリストを返す dataTransfer.types プロパティを読み取ること ができます。そのため、これらのタイプの 1 つとしてカスタム文字列を使用する場合は、それをチェックして、追加したドラッグ データの存在を確認できます。

例えば

event.dataTransfer.setData("SpecialNameOfDragSource", data);

次に、ドラッグオーバーで、このタイプが存在するかどうかを確認できます:

function ondragover(ev) {
    if (ev.dataTransfer.types && ev.dataTransfer.types.indexOf("SpecialNameOfDragSource") > -1) {
         // cancel the event
    }
 }
于 2013-07-16T14:04:53.240 に答える