2 votes

La barre de progression ne disparaît pas après le téléchargement du fichier, téléchargement du fichier jQuery

Je suis en train d'utiliser la gemme jquery-fileupload-rails pour télécharger l'image dans mon application. Voici le code:

  <div class="upload ">
  {%=o.name%}
  <div class="progress"><div class="bar" style="width: 0%"></div></div>
</code></pre>

<p>
</p>

<pre><code><div class="photo-post-img">
<%= form_for Upload.new do |f| %>
  <span class="btn btn-primary fileinput-button ml30">
    <b>+</b>
    <span class="text-orange">Ajouter une image</span>
    <%= f.file_field :upload, multiple: true, name: "upload[upload]" %>
    <%= f.hidden_field :post_id, :value => @post.upload_id %>
    <%= f.hidden_field :upload_type, :value => @post.upload_type %>
  </span>
<% end %>
<div class="img-upload-list">
  <ul id="photos_uploaded" class="thumbnails pull-left">
    <% @post.uploads.each do |upload| %>
      <li class="thumbnail" id="uploads-<%=upload.id %>">
        <%=image_tag upload.upload.url(:medium) %>
        <%= link_to "Supprimer", upload, :remote => true, :method => "delete" %>
      </li>
     <% end %>
  </ul>
</div>
</code></pre>

<p>
Et dans le fichier .js:</p>

<pre><code>jQuery(function() {
  return $('#new_upload').fileupload({
  dataType: "script",
  add: function(e, data) {
    var file, types;
    types = /(\.|\/)(gif|jpe?g|png)$/i;
    file = data.files[0];
    if (types.test(file.type) || types.test(file.name)) {
      data.context = $(tmpl("template-upload", file));
      $('#new_upload').append(data.context);
      return data.submit();
    } else {
       return alert("" + file.name + " n'est pas un fichier d'image gif, jpeg ou png");
    }
   },

   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 + '%');
      }
    },
   done: function (e, data) {
     $('.upload').attr('style', 'visibility: hidden');
   }
 });
});
</code></pre>

<p>Tout fonctionne bien mais après le téléchargement de l'image, la barre de progression ne disparait pas. Comment supprimer la barre après le téléchargement ?</p></x-turndown>

4voto

Rajeev Points 1013

Au lieu du callback done, ajoutez le callback stop dans votre fichier js

stop: function (e, data) {
  $('.upload').hide();
},

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X