具有多个拖放区域的jQuery文件滴

时间:2012-09-13 13:02:17

标签: jquery html5 file-upload

我正在尝试构建一个包含多个放置区域的页面来上传文件。每个区域都有特定的参数来接受/上传不同类型的图像。我使用过jQuery filedrop

一切顺利,只有一个独特的掉落区,但是有多个区域,只有最后一个区域有效。 您可以看到example here

我不知道这是文件丢包的限制,还是我做错了。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

好的,我找到了解决方案的开始。

您可以为每个保管箱创建一个功能

$.fn.filedrop = function(options) {
    opts1 = $.extend( {}, default_opts, options );

    this.bind('drop', drop).bind('dragenter', dragEnter).bind('dragover', dragOver).bind('dragleave', dragLeave);
    $(document).bind('drop', docDrop).bind('dragenter', docEnter).bind('dragover', docOver).bind('dragleave', docLeave);
};

为第一个下拉框创建var opts1,然后为第二个dropbox创建var opts2,依此类推......并在每个函数$.fn.filedrop中替换var {{1} } opts opts1所以你有第一个下拉框的函数opts2,第二个下拉框有一个$.fn.filedrop1,依此类推。在每个函数中,您将drop函数绑定到每个$.fn.filedrop2 drop1函数drop2,并创建与dropbox一样多的drop函数。在每个drop函数中,您添加第一行,因此在每个drop上它将根据dropbox

更新选项
this.bind('drop', drop2)

当然你根据每个dropbox function drop2(e) { opts = opts2; opts.drop(e); files = e.dataTransfer.files; if (files === null || files === undefined) { opts.error(errors[0]); return false; } files_count = files.length; upload(); e.preventDefault(); return false; }

绑定每个filedrop函数