Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Make countdown start after button is clicked

I'm creating a kid's game with a timer countdown that starts after the user clicks a button.

The code I'm using initiates the countdown without a problem, but I'd like the countdown to start only after the button is clicked.

Here is my code:

window.onload = function(){
(function(){
  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);
})();
}

JSFiddle

Thank you! Lauren

like image 591
Lauren Avatar asked Feb 10 '14 06:02

Lauren


2 Answers

Use click event of action link with id= "startClock"

$("#startClock").click( function(){
   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);
});
like image 164
Sandy Avatar answered Oct 05 '22 12:10

Sandy


Create a function and add click lister to button to call that function. Do somthing like this.

function startTimer(){
  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);
}
function start()
{
    document.getElementById("count").style="color:green;";
    startTimer();
};
button
{
font-size:40px;
background-color:black;
color:white;
}
#count
{
   margin-left:20px;
   font-size:30px;
   color:black;
}
<span id="count">5</span> seconds
<br>
<button onclick="start()">
START
</button>
like image 34
Subash Selvaraj Avatar answered Oct 05 '22 11:10

Subash Selvaraj