4 votes

faire une pause et continuer en utilisant setInterval

Ce que je veux faire, c'est que lorsque vous cliquez sur ce lien. <a href="javascript:void(0)" class="pauser">pause/continue</a> la minuterie se met en pause et reprend lorsqu'on appuie à nouveau dessus.

<script>
$(document).ready(function () {
    var counter = 10;
    var id = setInterval(function() {
       counter--;
       if(counter > 0) {
            var msg = 'You can continue ' + counter + ' seconds';
            $('#notice').text(msg);
       } else {
            $('#notice').hide();
            $('#download').show();
            clearInterval(id);
      }
    }, 1000);
});
</script>

Mon HTML en rapport avec le jQuery est ici si vous en avez besoin.

<a href="http://myurl.com" id="download" class="button" style="display: none;font-size:30px;">Continue !!</a><p id="notice">
You can continue in 10 seconds</p>

7voto

Landon Points 2056

Eh bien, il suffirait que votre événement de pause définisse un booléen, puis vérifie ce booléen avant de décrémenter votre compteur :

<a href="javascript:setPause();" class="pauser">pause/continue</a>

y

var ispaused=false;
function setPause(){
   ispaused=!ispaused;
}

y

$(document).ready(function () {
var counter = 10;
var id = setInterval(function() {
   if(!ispaused){ ////the only new line I added from your example above
     counter--;
     if(counter > 0) {
          var msg = 'You can continue ' + counter + ' seconds';
          $('#notice').text(msg);
     } else {
          $('#notice').hide();
          $('#download').show();
          clearInterval(id);
    }
  }
}, 1000);
});

Ça devrait le faire, non ?

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