dragendイベントとdropイベントの間に定義された順序がありますか?

robertjlooby:

HTML5ドラッグアンドドロップAPI のドキュメントよると要素がドロップされると2つのイベントが発生します。

  1. dropイベントは、ドロップターゲットから発射されます
  2. dragendイベントは、ドラッグのソースから発射されます

簡単なテスト(スニペットを参照)を実行すると、dropイベントは常にイベントの直前にdragend(少なくともChromeでは)起動しますが、仕様でこれらのイベントの順序について何も見つかりません。

これらのイベントの順序は定義されていますか、それともどちらの順序でも自由に起動できますか?

function allowDrop(ev) {
    ev.preventDefault();
}

function drag(ev) {
    ev.dataTransfer.setData("text", ev.target.id);
}

function drop(ev) {
    console.log("drop at " + Date.now());
    ev.preventDefault();
    var data = ev.dataTransfer.getData("text");
    ev.target.appendChild(document.getElementById(data));
}

function dragend(ev) {
    console.log("dragend at " + Date.now());
}
#div1 {
  background-color: red;
  height: 100px;
  width: 100px;
}
#drag1 {
  background-color: green;
  height: 50px;
  width: 50px;
}
<div>Drag the green square in to the red one</div>

<div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)" width="100px" height="100px"></div>

<div id="drag1" draggable="true" ondragstart="drag(event)" ondragend="dragend(event)" width="50px" height="50px">

Robby Cornelissen:

現在の(2017年5月8日更新)HTML仕様で指定されているドラッグアンドドロップ処理モデルに従ってdrop()イベントイベントの発生する必要がありdragend()ます。

対応する情報はドキュメント内で深くネストされていますが、ドラッグ操作の終了を説明するセクションは次のようになります(省略および強調は私のものです):

それ以外の場合、ユーザーがドラッグアンドドロップ操作を終了した場合(たとえば、マウス駆動のドラッグアンドドロップインターフェイスでマウスボタンを離した場合)、またはdragイベントがキャンセルされた場合、これが最後の反復になります。次の手順を実行してから、ドラッグアンドドロップ操作を停止します。

  1. [...]
    そうでない場合、ドラッグ操作は成功する可能性があります。次のサブステップを実行します。
    1. ドロップを真実にしましょう
    2. 現在のターゲット要素がDOM要素である場合、その名前dropDNDイベントを発生させます。それ以外の場合は、ドロップを示すためにプラットフォーム固有の規則を使用します。
    3. [...]
  2. dragendソースノードで指定さたDNDイベントを起動します。
  3. [...]

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Angularには、コントローラーが作成されたときのイベントがありますか?

分類Dev

Firebaseイベントの順序に保証はありますか

分類Dev

LocalBroadcastManagerは、イベントが送信された順序でイベントを配信しますか?

分類Dev

教義でイベントリスナー/サブスクライバーが呼び出される順序を定義できますか?

分類Dev

「ブラー」イベントと「フォーカス」イベントは、この順序で発生することが保証されていますか?

分類Dev

ng-includesがロードされたときに$ routechangesuccessまたは$ viewcontentloadedイベントはありますか?

分類Dev

公開されたすべてのRailsイベントストアイベントにはタイムスタンプがありますか?

分類Dev

指定されたインデックスのベクトルから要素を削除します。順序は関係ありません

分類Dev

OpenLayers 3で機能が選択されたときのイベントはありますか?

分類Dev

新しい画像が表示されたときに発生するWindowsMedia Player COMコンポーネントのイベントはありますか?

分類Dev

コントロールのデータバインディングが更新され、そのイベント/コマンドが実行される特定の順序はありますか

分類Dev

トリガーされたイベントの順序

分類Dev

ロードイベントとDOMContentLoadedイベントの発生順序をどのように決定しますか?

分類Dev

Linux perf cacheの定義-イベントがありませんか?

分類Dev

たとえば、過去24時間に信号にイベントがない場合に、エラーイベントを生成する方法はありますか?

分類Dev

割り当て後に定義されたuvmのsystemverilogのイベント制御「@」

分類Dev

Mixpanel javascriptの統合:連続するイベントがmixpanelの最後で間違った順序で記録されます

分類Dev

inotify:イベントは、ファイルシステムで発生したのとまったく同じ順序で報告されますか?

分類Dev

fancytreeには、ツリー内のデータが完全にロードされたことを示すイベントがありますか?

分類Dev

ブロックの幅が変更されたときに呼び出されるイベントはありますか?

分類Dev

NodeJSイベントループの順序が間違っています

分類Dev

順序付けされていない複数のイベントを順序付けされた順次イベントに作成するための効果的なロジックを作成するにはどうすればよいですか?

分類Dev

ChromeアプリのWebビューイベントの定義と順序

分類Dev

Ctrl +「いくつかのキー」が押されたときに制御文字でOnKeyPressイベントの迷惑な生成を停止する方法はありますか?

分類Dev

.NET Treeview NodeMouseClickイベントに遅れがありますか?

分類Dev

datetime / numpyで指定された1時間あたりのイベント数をカウントします

分類Dev

印刷された各ページのイベントはありますか?

分類Dev

スタイラスの近接が検出されたときにイベントが生成されますか?

分類Dev

「非同期イベント」の定義がわかりやすい?

Related 関連記事

  1. 1

    Angularには、コントローラーが作成されたときのイベントがありますか?

  2. 2

    Firebaseイベントの順序に保証はありますか

  3. 3

    LocalBroadcastManagerは、イベントが送信された順序でイベントを配信しますか?

  4. 4

    教義でイベントリスナー/サブスクライバーが呼び出される順序を定義できますか?

  5. 5

    「ブラー」イベントと「フォーカス」イベントは、この順序で発生することが保証されていますか?

  6. 6

    ng-includesがロードされたときに$ routechangesuccessまたは$ viewcontentloadedイベントはありますか?

  7. 7

    公開されたすべてのRailsイベントストアイベントにはタイムスタンプがありますか?

  8. 8

    指定されたインデックスのベクトルから要素を削除します。順序は関係ありません

  9. 9

    OpenLayers 3で機能が選択されたときのイベントはありますか?

  10. 10

    新しい画像が表示されたときに発生するWindowsMedia Player COMコンポーネントのイベントはありますか?

  11. 11

    コントロールのデータバインディングが更新され、そのイベント/コマンドが実行される特定の順序はありますか

  12. 12

    トリガーされたイベントの順序

  13. 13

    ロードイベントとDOMContentLoadedイベントの発生順序をどのように決定しますか?

  14. 14

    Linux perf cacheの定義-イベントがありませんか?

  15. 15

    たとえば、過去24時間に信号にイベントがない場合に、エラーイベントを生成する方法はありますか?

  16. 16

    割り当て後に定義されたuvmのsystemverilogのイベント制御「@」

  17. 17

    Mixpanel javascriptの統合:連続するイベントがmixpanelの最後で間違った順序で記録されます

  18. 18

    inotify:イベントは、ファイルシステムで発生したのとまったく同じ順序で報告されますか?

  19. 19

    fancytreeには、ツリー内のデータが完全にロードされたことを示すイベントがありますか?

  20. 20

    ブロックの幅が変更されたときに呼び出されるイベントはありますか?

  21. 21

    NodeJSイベントループの順序が間違っています

  22. 22

    順序付けされていない複数のイベントを順序付けされた順次イベントに作成するための効果的なロジックを作成するにはどうすればよいですか?

  23. 23

    ChromeアプリのWebビューイベントの定義と順序

  24. 24

    Ctrl +「いくつかのキー」が押されたときに制御文字でOnKeyPressイベントの迷惑な生成を停止する方法はありますか?

  25. 25

    .NET Treeview NodeMouseClickイベントに遅れがありますか?

  26. 26

    datetime / numpyで指定された1時間あたりのイベント数をカウントします

  27. 27

    印刷された各ページのイベントはありますか?

  28. 28

    スタイラスの近接が検出されたときにイベントが生成されますか?

  29. 29

    「非同期イベント」の定義がわかりやすい?

ホットタグ

アーカイブ