gpt4 book ai didi

javascript - jQuery 文件上传无法调用未定义的方法 '_adjustMaxNumberOfFiles'

转载 作者:数据小太阳 更新时间:2023-10-29 06:12:26 31 4
gpt4 key购买 nike

我正在实现 jQuery File Upload Rails 3.2 应用程序中的插件,我收到此错误消息:

未捕获的类型错误:无法调用未定义的方法“_adjustMaxNumberOfFiles”

这是调用 _adjustMaxNumberOfFiles 的代码:

$(function () {
// Initialize the jQuery File Upload widget:
$('#fileupload').fileupload(
{
url: '/photos', // post to and retrieve from
dataType: 'json'
}
);

// Load existing files:
$.getJSON($('#fileupload').prop('action'), function (files) {
var fu = $('#fileupload').data('fileupload'),
files = jQuery.grep(files, function (a) { return a.gallery_id == <%= params[:id] %>; }), //filter the photos down to this gallery
template;


fu._adjustMaxNumberOfFiles(-files.length);
template = fu._renderDownload(files).appendTo($('#fileupload .files'));

// Force reflow:
fu._reflow = fu._transition && template.length && template[0].offsetWidth;
template.addClass('in');
$('#loading').remove();
});

});

这完全有效。我已经开始处理应用程序的其余部分,当我部署到暂存环境时,我注意到我遇到了上述错误。我回到 dev 看看它是否在那里发生并且确实发生了。我正在使用 jquery-fileupload-rails gem 将必要的文件加载到 Assets 管道中。我试过不使用 gem 并手动加载所有 Assets ,但这没有帮助。

我尝试在控制台中逐步执行此操作,设置 fu 和 fu._adjustMaxNumberOfFiles,但仍然收到错误消息 Cannot call method '_adjustMaxNumberOfFiles' of undefined。如果我用 _adjustMaxNumberOfFiles 注释掉该行,我会在下一行得到同样的错误,而不是告诉我 _renderDownload 未定义。就好像我无法访问 jquery-file-upload 插件中设置的任何方法,即使脚本都已加载。以下是按顺序加载的脚本。我已经排除了不适用于此处的 js 文件。

<script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-fileupload/vendor/jquery.ui.widget.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-fileupload/vendor/load-image.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-fileupload/vendor/canvas-to-blob.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-fileupload/vendor/tmpl.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-fileupload/jquery.iframe-transport.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-fileupload/jquery.fileupload.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-fileupload/jquery.fileupload-fp.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-fileupload/jquery.fileupload-ui.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-fileupload/locale.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-fileupload/index.js?body=1" type="text/javascript"></script>

我真的很难弄明白这一点。任何帮助,将不胜感激。如有必要,我可以发布更多代码片段,但我发布的是唯一不属于 jQuery 文件上传插件的 JavaScript。

最佳答案

在 uploads_controller 中创建 Action :

format.json { render json: {files: [@upload.to_jq_upload]}, status: :created, location: @upload }

在你的js中:

var fu = $('#fileupload').data('blueimpFileupload');

关于javascript - jQuery 文件上传无法调用未定义的方法 '_adjustMaxNumberOfFiles',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15275432/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com