Rejouer un GIF Animation / Recharger GIF sur le clic

J'ai une animation GIF grande et je l'ai affiché une icône de chargement jusqu'à ce que le GIF soit chargé. Une fois qu'il est chargé, le GIF s'affiche. Fonctionne bien mais je souhaite ajouter un bouton "replay" pour déclencher le GIF pour rejouer (recharger).

Code pour le chargement et le GIF:

HTML

<div id="loader" class="loading img-center"></div> 

CSS

 #loader { width: 600px; height: 450px; margin: auto; } #loader.loading { background: url(/Images/ajax-loader.gif) no-repeat center center; width:32px; margin:auto ; } 

JS

 var $j = jQuery.noConflict(); $j(function () { var img = new Image(); $j(img) .load(function () { $j(this).hide(); $j('#loader') .removeClass('loading') .append(this); $j(this).fadeIn(); }) .error(function () { }) .attr('src', '/2012/images/august/sailboat.gif'); }); 

Le code ci-dessus fonctionne bien. Maintenant pour le code "Replay" ou "Recharger" qui ne fonctionne pas:

HTML

 <a id="refresh" href="#"> Replay Animation </a> 

JS

 $j(function() { $j("#refresh").click(function() { $j("#loader").load("/2012/images/august/sailboat.gif") }) }) 

Je sais qu'il y a une erreur avec le JS mais avec mon manque d'habileté dans JS, je ne sais pas ce que je devrais faire ou essayer. Toute aide ou conseil est grandement apprécié!

Merci!

Vérifie ça:

 $j("#refresh").click(function() { $j("#loader").find('img').attr("src", "/2012/images/august/sailboat.gif"); }); 

Comme dans votre code précédent, vous ajoutez l'image dans #loader donc $('#loader').load(..) ne fonctionnera pas. Trouvez l'image dans #loader , puis modifiez la src de cette image.

Vous pouvez également ajouter l'horodatage pour éviter le chargement d'image à partir du cache si nécessaire:

 $j("#refresh").click(function() { var timestamp = new Date().getTime(); $j('#loader').find('img').attr('src', '/2012/images/august/sailboat.gif'+'?'+timestamp); });