Fine-Uploader:extraButtons.element 只允许 ID,但不允许 CLASS
Fine-Uploader: extraButtons.element allows only ID, but not CLASS
我根据此处的文档使用带有一些额外定义按钮的 Fine-Uploader 插件:
http://docs.fineuploader.com/features/extra-buttons.html
这是我的代码:
$gallery_upload.fineUploaderS3({
...
extraButtons: [{
element: $(".pdf-button"),
validation: {
allowedExtensions: ["jpg"]
}
}],
...
基本上,它的工作原理与预期的差不多,除了一点。请注意,我已将 "element" 指定为名为“.pdf-button”的 jquery "class"。文档中的示例是 "id".
当我使用 class 时,这意味着我将在我的页面中放置多个共享相同 class 的按钮。但是,似乎只有一个按钮被捕获,并初始化为 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
这似乎不是预期的行为。如果您确定您传递的 jquery 对象包含多个元素(在您创建它时),您应该提交错误。如果您确定您的 jquery 对象在创建时包含多个对象,并且在这种情况下上传器只拾取第一个,作为解决方法,您需要包含一个数组,其中包含对每个元素的引用在你的情况下。坦率地说,我建议不要使用 jquery 插件包装器。它没有提供任何实际好处。非jquery语法更直观。
此外,如果这是库中的错误,我会感到非常惊讶,因为 jquery 包装器代码已经很长时间没有更改了,因此您需要绝对确定 jquery你传递的对象包含多个元素。
我根据此处的文档使用带有一些额外定义按钮的 Fine-Uploader 插件:
http://docs.fineuploader.com/features/extra-buttons.html
这是我的代码:
$gallery_upload.fineUploaderS3({
...
extraButtons: [{
element: $(".pdf-button"),
validation: {
allowedExtensions: ["jpg"]
}
}],
...
基本上,它的工作原理与预期的差不多,除了一点。请注意,我已将 "element" 指定为名为“.pdf-button”的 jquery "class"。文档中的示例是 "id".
当我使用 class 时,这意味着我将在我的页面中放置多个共享相同 class 的按钮。但是,似乎只有一个按钮被捕获,并初始化为 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
这似乎不是预期的行为。如果您确定您传递的 jquery 对象包含多个元素(在您创建它时),您应该提交错误。如果您确定您的 jquery 对象在创建时包含多个对象,并且在这种情况下上传器只拾取第一个,作为解决方法,您需要包含一个数组,其中包含对每个元素的引用在你的情况下。坦率地说,我建议不要使用 jquery 插件包装器。它没有提供任何实际好处。非jquery语法更直观。
此外,如果这是库中的错误,我会感到非常惊讶,因为 jquery 包装器代码已经很长时间没有更改了,因此您需要绝对确定 jquery你传递的对象包含多个元素。