Javascript Rails4jQuery插件文件上传加载两次

Javascript Rails4jQuery插件文件上传加载两次,javascript,jquery,ruby-on-rails,ruby-on-rails-4,Javascript,Jquery,Ruby On Rails,Ruby On Rails 4,我使用jquery文件上传插件的方式与Railscasts 381中介绍的方式大致相同 因为我使用的是Rails4,涡轮链接给我带来了很多麻烦 有时插件加载两次。有时,它根本不加载 我尝试了很多选择,但都无法让它正常工作 现在,我有以下设置: $(document).ready(function() { $("#new_picture").fileupload({ dataType: "script", add: function(

我使用jquery文件上传插件的方式与Railscasts 381中介绍的方式大致相同

因为我使用的是Rails4,涡轮链接给我带来了很多麻烦

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

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

现在,我有以下设置:

$(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();

            }
        });
})

当我重新加载页面时,一切正常。当我转到另一页时,它就不见了

我尝试在每次页面更改后重新加载插件,加载的变量如下:

var isLoaded=false;

function documentReadyOperations() {

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

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

});
但这也不行


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

您可以随时禁用turbo linksYes,但我喜欢它-我在jQuery和Turbolinks上也遇到过类似的问题,发现gem有助于解决绑定事件的问题。我尝试过,但没有成功。它将继续加载插件两次。我不敢相信没有简单的方法来检测插件是否已加载。难以置信的您是否检查了控制台和/或页面的源代码,以查看脚本是否加载了两次,或者您的文件上载是否在多个位置进行了初始化?