Spec-Zone.ru › Web APIs

DataTransfer: свойство items

Базовая Широко распространена

Это хорошо зарекомендовавшее себя свойство, работающее на многих устройствах и версиях браузера. Оно доступно в браузерах с июля 2015 года.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Только для чтения items свойство интерфейса DataTransfer представляет собой list элементов переносимых данных в операции перетаскивания. Список содержит по одному элементу для каждого элемента в операции; если операция не содержала элементов, список пуст.

Значение

Объект DataTransferItemList, содержащий объекты DataTransferItem, представляющие элементы, перетаскиваемые в операции перетаскивания, по одному элементу списка для каждого перетаскиваемого объекта. Если операция перетаскивания не содержала данных, список пуст.

Примеры

Вывод перетаскиваемых элементов

В этом примере используется items для вывода информации о перетаскиваемых элементах.

HTML

<ul>
  <li id="source1" draggable="true">Drag Item 1 to the Drop Zone</li>
  <li id="source2" draggable="true">Drag Item 2 to the Drop Zone</li>
</ul>
<div id="target">Drop Zone</div>

<button id="reset">Reset</button>

CSS

div {
  margin: 0em;
  padding: 2em;
}

#target {
  border: 1px solid black;
}

JavaScript

function dragstartHandler(ev) {
  console.log(`dragstart: target.id = ${ev.target.id}`);
  // Add this element's id to the drag payload so the drop handler will
  // know which element to add to its tree
  ev.dataTransfer.setData("text/plain", ev.target.id);
  ev.dataTransfer.effectAllowed = "move";
}

function dropHandler(ev) {
  ev.preventDefault();
  // Get the id of the target and add the moved element to the target's DOM
  const data = ev.dataTransfer.getData("text");
  ev.target.appendChild(document.getElementById(data));
  // Print each item's "kind" and "type"
  if (ev.dataTransfer.items) {
    for (const item of ev.dataTransfer.items) {
      console.log(`kind = ${item.kind}, type = ${item.type}`);
    }
  }
}

function dragoverHandler(ev) {
  ev.preventDefault();
  // Set the dropEffect to move
  ev.dataTransfer.dropEffect = "move";
}

const source1 = document.querySelector("#source1");
const source2 = document.querySelector("#source2");
const target = document.querySelector("#target");

source1.addEventListener("dragstart", dragstartHandler);
source2.addEventListener("dragstart", dragstartHandler);
target.addEventListener("dragover", dragoverHandler);
target.addEventListener("drop", dropHandler);

const reset = document.querySelector("#reset");
reset.addEventListener("click", () => document.location.reload());

Результат

Спецификации

Спецификация
HTML
# dom-datatransfer-items-dev

Совместимость браузеров

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
items 3 12 50 12 11.1 18 52 12 11.3 1.0 ≤37

См. также

  • Перетаскивание и перемещение
  • Операции перетаскивания
  • Рекомендованные типы перетаскивания
  • Тест DataTransfer — Вставка или перетаскивание

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/items

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API