是否可以使用 jQuery 的 drop事件从桌面拖动文件?
drop
如果是这样,我如何得到删除的文件数据?
这有点混乱(您至少需要处理3个事件) ,但是可能会出现这种情况。
首先,您需要为 dragover和 dragenter添加事件处理程序,并防止这些事件的默认操作,比如:
dragover
dragenter
$('#div').on( 'dragover', function(e) { e.preventDefault(); e.stopPropagation(); } ) $('#div').on( 'dragenter', function(e) { e.preventDefault(); e.stopPropagation(); } )
对这些事件调用 preventDefault实际上很重要,否则,有些浏览器可能永远不会触发 drop事件。
preventDefault
然后您可以添加下拉处理程序,并使用 e.originalEvent.dataTransfer.files访问下拉文件:
e.originalEvent.dataTransfer.files
$('#div').on( 'drop', function(e){ if(e.originalEvent.dataTransfer && e.originalEvent.dataTransfer.files.length) { e.preventDefault(); e.stopPropagation(); /*UPLOAD FILES HERE*/ upload(e.originalEvent.dataTransfer.files); } } );
现在您可以从 div 中的桌面/Explorer/finder 中拖动文件并访问它们。
Http://jsfiddle.net/fsa4n/5/