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 |
См. также
© 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