rails 4 jquery插件fileupload加载两次

时间:2014-08-06 14:51:01

标签: javascript jquery ruby-on-rails ruby-on-rails-4

我正在使用jquery fileupload插件,其方式与Railscasts 381中提供的方式相同。

由于我使用Rails4,Turbolinks给我带来了很多麻烦。

有时插件会加载两次。有时,它根本不会加载。

我尝试了很多选项,但我无法让它正常工作。

现在,我有这个设置:

$(document).ready(function() {
        $("#new_picture").fileupload({
            dataType: "script",
            add: function(e, data) {
                $("#picture_submit_button").addClass("disabled");
                console.log("data context:" + data.context);
                data.formData = $("#new_picture").serializeArray();
                var file;
                file = data.files[0];
                data.context = $(tmpl("template-upload", file));
                $("#new_picture").append(data.context);
                data.submit();
                return $("#page-loading").hide();
            },
            progress: function(e, data) {
                var progress;
                if (data.context) {
                    progress = parseInt(data.loaded / data.total * 100, 10);
                    return data.context.find(".bar").css("width", progress + "%");
                }
            },
            stop: function(e, data) {
                $("#picture_submit_button").removeClass("disabled");
                $(".upload").remove();

            }
        });

});

当我重新加载页面时,没关系。当我转到另一页时,它就消失了。

我尝试使用变量isLoaded在每次更改页面后重新加载插件:

var isLoaded=false;

function documentReadyOperations() {

if(!isLoaded) {
   $("#new_picture").fileupload({ ... });
   isLoaded = true;
}
}

$(document).bind('page:change', function() {
    documentReadyOperations();

});

但这也不起作用。

管理这些插件的正确方法是什么?

0 个答案:

没有答案