I want to count down from 10 seconds to 0. When it have reached 0 the DIV will reload and the timer will start over again. I have this function that allows it to do exactly like I wanted but the problem is that when the countdown have reached 0 and going back to 10, it will count -1 reload -2 reload -3 reload -4 reload and so on. That is not how I want it! :)
Here's my code:
var time = setInterval(countdown, 1000);
function countdown() {
var count = 10;
countdown = setInterval(function() {
$('#countdown').html(count + ' sekunder kvar');
if(count == 0) {
$('#weather-data').load('jquery-fetch/fetch-weatherdata.php?place=' + myplace);
clearInterval(countdown);
}
count--;
}, 1000);
}
How can I fix my problem so the timer counts down from 10 to 0 and repeat that countdown forever?
Thanks in advance.
EDIT
When this function has reached 0 for the first time and starts over, it counts like this: 10, 9, 8, 10, 7, 6, 5, 4, 3, 2, 1, 10, 9, 8, 7, 10, 6, 5, 4, 3, 2, 1, 10, 9, 8, 10, 7, 6, and so on. Why does it act like this with this code?
function countdown() {
var count = 10;
var timerId = setInterval(function() {
$('#countdown').html(count + ' sekunder kvar');
count--;
if(count == 0) {
$('#weather-data').load('jquery-fetch/fetch-weatherdata.php?place=' + myplace);
clearInterval(timerId);
countdown();
}
}, 1000);
}
countdown();
Thanks in advance!
I see a lot of problems in your script... So not sure how you even get that to work..
-
, so that call won't work :Scountdown
is a global variable inside your function countdown()
which is the same as your function name, effectively a countdownception
Interval
every one second as you are calling countdown
To achieve what you want, try the simpler:
function countdown() {
// your code goes here
var count = 10;
var timerId = setInterval(function() {
count--;
console.log(count);
if(count == 0) {
// your code goes here
count = 10;
}
}, 1000);
}
countdown();