2009-09-28 12 views
0

Comment puis-je déplacer cette image http://svastara.info/.s/img/icon/download1.png en face de Télécharger maintenant? devrait ressembler à ceci: l'image Télécharger maintenantComment déplacer une image au début de Download Now en code javascript?

var CountdownTimer = function(id, count, imgurl) { this.construct(id, count, imgurl); } 
CountdownTimer.prototype = { 
     construct: function(id,count,imgurl) { 
       this.id = id; 
       this.object = document.getElementById(id); 
       this.count = count; 
       this.interval = null; 
       this.counted = false; 
       this.img = new Image(); // preload 
       this.img.src = imgurl; 
       this.img.border = "0"; 

       (function(obj) { 
         obj.object.onclick = function() { 
           return obj.onclick(); 
         }; 
       })(this); 
     }, 

     tick: function() { 
       this.count--; 
       this.render(); 

       if(this.count == 0){ 
         clearInterval(this.interval); 
         this.interval = null; 
         this.object.appendChild(this.img); 
       } 
     }, 

     onclick: function() { 
       if(!this.counted) { 
         this.counted = true; 
         this.render(); 
         (function(obj) { 
           obj.interval = setInterval(function() { 
             obj.tick(); 
           },1000); 
         })(this); 
         return false; 
       } else if(this.count == 0) 
         return true; 
       else 
         return false; 
     }, 

     render: function() { 
       if(this.count > 0) 
         this.object.innerHTML = "Download (" + this.count + " second" + (this.count == 1 ? "" : "s") + ")"; 
       else 
         this.object.innerHTML = "Download Now"; 
     } 

}; 

window.onload = function() { 
     var c = new CountdownTimer("delayed",3,"http://svastara.info/.s/img/icon/download1.png"); 
}; 

<div> 
<a id="delayed" class="stop" href="http://www.epiclosers.com/">Download (30sec)</a> 
</div> 

Répondre

0

Jetez un oeil à la méthode insertBefore, le texte existant devrait être un nœud enfant de la balise d'ancrage. Cela dit, je commence à me demander pourquoi les gens font les choses fantaisistes ici ... Vous n'êtes pas unique, je vois ce genre de chose tout le temps. Le code peut être simplifié en autorisant HTML et CSS à vous aider. Placez l'image dans le document, réglez l'affichage sur aucun, et allumez-le quand vous en avez besoin. En outre, le texte après le téléchargement peut être dans un intervalle qui est également mis à jour selon vos besoins. Alors tout peut être géré avec une fraction du code. Dernière réflexion sur la simplification, vous pouvez simplement désactiver le lien jusqu'à ce que vous êtes prêt à autoriser.

Aussi, en utilisant un simple débogueur dans le client, je peux changer le compte à 0 à la volée et contourner la logique tout à fait. Ou, encore plus simple, je peux simplement désactiver javascript et cliquer sur le lien. En d'autres termes, assurez-vous de l'appliquer par d'autres moyens qui ne sont pas dans le client. C'est toujours une mauvaise idée de s'appuyer sur le client pour appliquer la politique, alors sauvegardez-le du côté du serveur. Vous pouvez le faire, alors s'il vous plaît ne soyez pas offensé par le commentaire.

+0

Je ne sais rien de javascript, ce que je veux, c'est ce que j'ai demandé ci-dessus si vous pouvez aider simplement, je ne suis pas là pour que vous m'enseigniez. Et oui je sais que ce code est faible tout 10 ans peut le passer s'il le sait, mais la plupart d'entre eux ne savent pas ... Alors quelqu'un d'autre s'il vous plaît répondre à ma question ci-dessus. – Brazen

+0

Je lui ai répondu dans la première phrase. –

+0

Cavan est mort: CSS est votre ami. La minuterie de téléchargement et tout ce qui nécessitera JS, mais l'ensemble peut être simplifié encore plus. – BryanH