JavaScript HTML5 : issue with drag-and-drop for a gmail-like upload interface

标签 javascript jquery html file-upload drag-and-drop

我的界面截图:

enter image description here

树的每个元素都是一个 <li>和一个 <a> .

每个文件夹都是一个用于文件上传的放置区,就像 gmail 上传拖放一样。

当我在包含我机器上的文件的文件夹上“拖入”时,我添加了一个样式:

enter image description here

代码:

var dropZoneElement = document.getElementById($this.attr('id'));

dropZoneElement.addEventListener('dragenter', onDragEnter, false);
dropZoneElement.addEventListener('dragleave', onDragLeave, false);
dropZoneElement.addEventListener('drop', onDrop, false);

function onDragEnter(event) {
  event.preventDefault();
  event.stopPropagation();
  $this.addClass('gmail-like');
}

function onDragLeave(event) {...}
function onDrop(event) {...}

但问题是,当我在文件夹上拖动链接(<a>)时(即使是没有目的地的假链接test,请参见屏幕截图),页面添加要上传的样式(没有上传,它只是视觉):

enter image description here

  • 为什么?
  • 有什么想法可以禁用它吗?

我希望样式仅在我从我的机器上拖放文件时应用。

最佳答案

基本上,您需要检查拖动数据项类型 并验证它确实是一个文件而不是其他东西。此外,您可以禁用

看看 HTML5 draft描述拖放过程。 This tutorial也可以提供一些帮助。

最后,following SO问题应该给你一些具体的提示。

关于JavaScript HTML5 : issue with drag-and-drop for a gmail-like upload interface,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8756895/

相关文章:

javascript - 内容安全策略指令 : "script-src ' self' 'unsafe-eval' "

javascript - 如何创建一组动态 slider

javascript - 我正在尝试将一些表单数据从一个 html 页面传递到另一个

html:有没有办法在html代码中包含滚动条

javascript - 从变量获取 href 值

javascript - 将material-ui封装到自定义组件中

javascript - 我可以访问 web worker 上的文档 cookie 吗

javascript - 仅由 FormData() 发送的多个文件对象类型

jQuery:无需浏览器特定代码即可获取输入中文本的光标位置?

javascript - Bootstrap CSS 加载不正确,看起来像一个典型的 HTML/CSS 下拉菜单