我根据以下文档使用Fine-Uploader插件和一些额外定义的按钮:
http://docs.fineuploader.com/features/extra-buttons.html
这是我的代码:
$gallery_upload.fineUploaderS3({
...
extraButtons: [{
element: $(".pdf-button"),
validation: {
allowedExtensions: ["jpg"]
}
}],
...
基本上,除了一点之外,它的工作方式与预期相同。请注意,我已经指定了"元素"作为jquery " class" 调用" .pdf-button"。文档中的示例是" id" 。
当我使用课程时,这意味着我将把多个按钮分配到我的页面中。但是,似乎只有一个按钮被捕获,并初始化为Fine-Uploader上传文件按钮。
其余的保持原样。
我想知道这是否是预期的行为,如果是的话,是否有其他方法可以实现我想要做的行为。
感谢任何帮助。
谢谢!
干杯, 托马斯
[更新]
根据与Ray的谈话,我实际上错误地使用了这个。
你不能指望FineUploader在FineUploader版本(使用和不使用JQuery包装器)上迭代jquery对象。你必须首先构建这样的东西:
var myExtraButtons = [
{
element: $('.file-trigger')[0]
},
{
element: $('.file-trigger')[1]
}
];
然后将其传递给Fine Uploader选项,如下所示:
$('fu-instance').fineUploaderS3({
...
extraButtons: myExtraButtons,
...
});
以上内容现在对我有用。
有关详细信息,请参阅此讨论: https://github.com/FineUploader/fine-uploader/issues/1375
答案 0 :(得分:1)
似乎这不是预期的行为。如果您确定传递的jquery对象包含的元素多于on元素(在您创建它时),则应该提交错误。如果你确定你的jquery对象在创建它时包含多个对象,并且上传者在此实例中仅提取第一个对象,作为一种变通方法,你需要包含一个数组,其中包含对你案例中每个元素的引用。坦率地说,我建议不要使用jquery插件包装器。它没有真正的好处。非jquery语法更加直观。
另外,如果这是库中的一个错误,我会非常惊讶,因为jquery包装器代码在很长一段时间内都没有改变,所以你要绝对确定你传递的jquery对象包含多个元件。