我界面的截图:
树的每个元素都是<li>
和<a>
。
每个文件夹都是文件上传的dropzone,就像gmail上传拖放一样。
当我在包含来自我的机器的文件的文件夹上“拖动输入”时,我添加了一种样式:
此代码:
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
,请参见屏幕截图),页面添加要上传的样式(否)上传,它只是视觉上的:
我希望这种风格仅在我从机器上拖放文件时适用。
答案 0 :(得分:2)
基本上,您需要检查drag data item kind
并验证确实是文件而不是其他内容。此外,您可以禁用
查看描述拖放过程的HTML5 draft。 This tutorial也可以提供一些帮助。
最后,following SO问题应该给你一些具体的提示。