2016-03-07 76 views
0

我正试图在dropzone上实现一个已删除的文件。我正在使用rails,为了实现这一点,我必须为我的dz-remove类添加id = 1属性。Dropzone将动态属性追加到#dz-remove

这是我当前的代码:

var dropzone = new Dropzone ("#my-dropzone", { 
     maxFiles: 50, 
     maxFilesize: 30, 
     paramName: "album[images][]", 
     addRemoveLinks: true, 
     uploadMultiple: true, 
     autoProcessQueue: false, 
     parallelUploads: 10, 
     processing: function(){ 
       dropzone.options.autoProcessQueue = true;}, 
     init: function(){ 
       var thisDropZone = this; 
       $.getJSON('image_list', function(data) { 
       $.each(data, function(index, val) { 
         var mockFile = { name: val.name, size: val.size }; 
         thisDropZone.emit("addedfile", mockFile); 
         thisDropZone.emit("thumbnail", mockFile, val.path); 
         thisDropZone.emit("complete", mockFile); 
        }); 
       }); 
       } 

我曾尝试这样的代码:

if @picture.save 
    render json: { message: "success", fileID: @picture.id }, :status => 200 
else 

它的工作原理,但是,当:

success: function(file, response){ 
       $(file.previewTemplate).find('.dz-remove').attr('id', response.fileID); 
       $(file.previewElement).addClass("dz-success"); 
      } 

FILEID是从我的画面控制器得到我刷新浏览器的属性id = 1不见了。我也想分开我的上传和编辑页面。

我也试图与此代码来获取值从JSON文件中的ID:

init: function(){ 
    var thisDropZone = this; 
    $.getJSON('image_list', function(data) { 
     $.each(data, function(index, val) { 
      var mockFile = { name: val.name, size: val.size }; 
      thisDropZone.emit("addedfile", mockFile); 
      thisDropZone.emit("thumbnail", mockFile, val.path); 
      thisDropZone.emit("complete", mockFile); 

      $(".dz-remove").attr("id", val.id); 
     }); 
    }); 
} 

这同样适用,并增加了一个永久id = 1属性我的HTML。但是附加的val.id是不变的。例如,如果我有3个图像:

<a href="javascript:undefined;" class: "dz-remove" data-dz-remove id="1">Remove</a> 
<a href="javascript:undefined;" class: "dz-remove" data-dz-remove id="1">Remove</a> 
<a href="javascript:undefined;" class: "dz-remove" data-dz-remove id="1">Remove</a> 

我的期望的输出是:

<a href="javascript:undefined;" class: "dz-remove" data-dz-remove id="1">Remove</a> 
<a href="javascript:undefined;" class: "dz-remove" data-dz-remove id="2">Remove</a> 
<a href="javascript:undefined;" class: "dz-remove" data-dz-remove id="3">Remove</a> 

我还试图$(".dz-remove").each但该值仍然是恒定的,而不是动态的。我也很困惑,因为当我做console.log($(".dz-remove").attr("id", val.id))控制台值正确追加(id=1, id=2, id=3)。在html上,我得到的是id=1

+0

Remove 这里类: “DZ-删除”,更换为= –

回答

0

更改$(“。dz-remove”)。attr(“id”,val.id);到 $(“。dz-remove”)。eq(index).attr(“id”,val.id);

$( “DZ-删除”。)元素的回归阵中,u要添加ID为电流,使用情商(元素的索引)

+0

试过了,所有的id都是一样的id = 1 – Kris

+0

尝试将val.id替换为$(val).attr('id'); 和在课后的HTMLü把冒号,取代'=' –

+0

好吧没关系,它的工作非常感谢。我的浏览器只是缓存,需要多次刷新。 – Kris