如何使用 jQuery 的 drop 事件上传从桌面拖动的文件

How to use jQuery#39;s drop event to upload files dragged from the desktop?(如何使用 jQuery 的 drop 事件上传从桌面拖动的文件?)
本文介绍了如何使用 jQuery 的 drop 事件上传从桌面拖动的文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以使用 jQuery 的 drop 事件从桌面拖动文件?

Is it possible to use jQuery's drop event for dragging files from the desktop?

如果是这样,我如何获取丢弃的文件数据?

If so, how do I get the dropped file data?

推荐答案

有点乱(你需要处理至少 3 个事件)但可能.

It's a little messy (you need to handle at least 3 events) but possible.

首先,您需要为 dragoverdragover 添加事件处理程序,并阻止这些事件的默认操作:

First, you need to add eventhandlers for dragover and dragenter and prevent the default actions for these events like that:

$('#div').on(
    'dragover',
    function(e) {
        e.preventDefault();
        e.stopPropagation();
    }
)
$('#div').on(
    'dragenter',
    function(e) {
        e.preventDefault();
        e.stopPropagation();
    }
)

在这些事件上调用 preventDefault 实际上很重要,否则,某些浏览器可能永远不会触发 drop 事件.

It's actually important to call preventDefault on these events, otherwise, some browsers may never trigger the drop event.

然后您可以添加 drop-handler 并使用 e.originalEvent.dataTransfer.files 访问已删除的文件:

Then you can add the drop-handler and access the dropped files with 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 中的桌面/资源管理器/查找器中拖动文件并访问它们.

Now you are able to drag files from the desktop/explorer/finder in the div and access them.

http://jsfiddle.net/fSA4N/5/

这篇关于如何使用 jQuery 的 drop 事件上传从桌面拖动的文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Update another component when Formik form changes(当Formik表单更改时更新另一个组件)
Formik validation isSubmitting / isValidating not getting set to true(Formik验证正在提交/isValiating未设置为True)
React Validation Max Range Using Formik(使用Formik的Reaction验证最大范围)
Validation using Yup to check string or number length(使用YUP检查字符串或数字长度的验证)
Updating initialValues prop on Formik Form does not update input value(更新Formik表单上的初始值属性不会更新输入值)
password validation with yup and formik(使用YUP和Formick进行密码验证)