好的,我有一个元素设置来接收文件丢弃事件,但当我查看event.dataTransfer它是空白.我还没有开始学习拖放式HTML5 API,我仍然有点模糊.我正在我的网站上工作.如果您不介意浏览我的代码并查看正在发生的事情,我们将非常感激.event正在记录整个对象.
在我的一列 n 行的 HTML 表格中,例如:
<table id="my-table">
<tr>
<td>How</td>
</tr>
<tr>
<td>Are</td>
</tr>
<tr>
<td>You</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
我想让每一行都可以拖放到另一行中。如果将一行 A 放入另一行 B,则这些相应行的 HTML 内容应该被交换。
为此,我阅读了相当多的文档和教程,但似乎缺少一些我无法弄清楚的东西。到目前为止我所做的是将以下代码附加到每个<td>标签中:
draggable="true" ondragstart="dragCell(event)" ondragover="allowDrop(event)" ondrop="dropCell(event)" ondragenter="handleDragEnter(event)" ondragleave="handleDragLeave(event)" ondragend="handleDragEnd(event)"
我的 JavaScript 是:
/*##############################################################################
## 1. Dragstart Handler ##
##############################################################################*/
function dragCell(ev) {
let draggedRow = ev.target.closest("tr");
let rowNumber = draggedRow.rowIndex;
let tableId = draggedRow.parentNode.parentNode.getAttribute("id");
let data = {"id":tableId,"rowNumber":rowNumber};
let cellsdragged = draggedRow.children;
let amountOfCells = cellsdragged.length;
let dataToTransfer = [];
for (let i = 0; i …Run Code Online (Sandbox Code Playgroud)