相关疑难解决方法(0)

当ondrop被触发时,event.dataTransfer.files为空?

好的,我有一个元素设置来接收文件丢弃事件,但当我查看event.dataTransfer它是空白.我还没有开始学习拖放式HTML5 API,我仍然有点模糊.我正在我的网站上工作.如果您不介意浏览我的代码并查看正在发生的事情,我们将非常感激.event正在记录整个对象.

javascript html5 drag-and-drop

45
推荐指数
2
解决办法
2万
查看次数

拖放 API 和表行(仅限 vanilla JS)

在我的一列 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)

javascript drag-and-drop html-table

4
推荐指数
1
解决办法
4251
查看次数

标签 统计

drag-and-drop ×2

javascript ×2

html-table ×1

html5 ×1