2017-10-15 14 views
0

Je suis tombé sur un scénario où j'ai besoin d'un compte à rebours pour démarrer après que l'utilisateur clique sur un lien, bien que le nombre "10" (est un compte à rebours de dix secondes) doit être visible avant cela. Le lien lui-même ouvre également une autre page. Le compte à rebours n'est pas censé faire quoi que ce soit à la fin, c'est juste de la décoration. Comment puis-je retirer ceci?Comment définir un compte à rebours lorsque l'utilisateur clique sur un lien?

<div id="gatewayDimmer">&nbsp;</div> 
<div id="gatewaydiv"> 
<ul id="OfferList"> 
    <h1>Ayudanos a mantener la P&aacute;gina</h1> 
    <span id="gatewayMessage">Hicimos esta p&aacute;gina de onda. Y no se mantiene sola! Ayudanos clickeando en la publicidad.</span> <br /> 
    <br /> 
    <li><a href="http://www.wachahost.com" class="offerlink" target="blank">Cheap Web Hosting</a></li> 
    <li><a href="http://peerfly.com/x/0/1076/3696/" class="offerlink" target="blank">Free Apple Ipad</a></li> 
    <li><a href="http://www.google.com" class="offerlink" target="blank">Google</a></li> 
</ul> 
<br /> 
<br /> 
Luego de completar la oferta espera: <span id="count">10</span> segundos    <script type="text/javascript"> 

      { 

      (function countDown(){ 
       var counter = 10; 

       setInterval(function countDown() { 
       counter--; 
       if (counter >= 0) { 
        span = document.getElementById("count"); 
        span.innerHTML = counter; 
       } 
       // Display 'counter' wherever you want to display it. 
       if (counter === 0) { 
       // alert('this is where it happens'); 
        clearInterval(counter); 
       } 

       }, 1000); 

      })(); 

      } 

      </script>   para acceder a la p&aacute;gina.<br /> 
Gracias!</div> 

script Message:

<script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js" type="text/javascript"></script> <script type="text/javascript"> 

    var Delay = 10; 

    function setupgateway() 
    { 
     var Left = $(window).width() /2; 
     Left = Left - $('#gatewaydiv').width()/2; 

     var Top = $(window).height() /2; 
     Top = Top - $('#gatewaydiv').height()/2; 

     $('#gatewaydiv').css('top', Top+'px').css('left', Left+'px').css('display', 'inline'); 
     $('#gatewayDimmer').width($('html').width()); 
     $('#gatewayDimmer').height($('html').height()); 
     $('#gatewayDimmer').css('display','block'); 
    } 

    function removegateway() 
    { 
     $('#gatewaydiv').css('display', 'none'); 
     $('#gatewayDimmer').css('display','none'); 
    } 

    $(document).ready(function() 
    { 
     $('.offerlink').click(function() 
     { 
      setTimeout('removegateway()', Delay*1000); 
     }); 

     setupgateway(); 
    }); 
</script> 
+3

double possible de [Javascript, compte à rebours et le texte d'affichage] (https : //stackoverflow.com/questions/9989285/javascript-countdown-timer-and-display-text) – Ivar

+0

Non, non. Je ne veux pas qu'un texte soit montré à la fin. Est-ce juste le compte à rebours. De plus, il doit être démarré après avoir cliqué sur un lien. –

+0

Compte à rebours pour quoi? Si ce n'est pas visible et qu'il ne fait rien à la fin, alors à quoi sert un compte à rebours? – Ivar

Répondre

1

Essayez d'utiliser la fonction jquery:

jQuery(function($){ 
    $('#startClock').on('click', doCount); 
}); 

function doCount(){ 
    var counter = 5; 
    setInterval(function() { 
     counter--; 
     if (counter >= 0) { 
     span = document.getElementById("count"); 
     span.innerHTML = counter; 
     } 
     if (counter === 0) { 
     alert('sorry, out of time'); 
     clearInterval(counter); 
     } 
    }, 1000); 
} 

Demo Fiddle: http://jsfiddle.net/6nDYd/12/

+0

Il suffit de mettre votre compteur à 10 au lieu de 5 –

+0

Je suis désolé, je sais que cela va sonner comme une question stupide mais comment puis-je connecter le lien (par exemple "Google") avec le code? (Merci beaucoup d'avoir répondu et désolé encore). –

+0

remplacer: alerte ('Désolé, hors du temps'); avec: window.location.href = 'http://www.google.com'; –