2013-11-04 31 views
0

請幫忙!我是Javascript新手,所以可能有更簡單的解決方案。基本上,我需要它提示輸入一個數字,然後從該數字倒數到零。一旦達到零,我需要它計數並停止在相同的提示數字。Javascript倒計時,然後從提示的變量計數?

我已經開始倒計時了,然後我完全殺了它,我不知道該怎麼做。

<script type="text/javascript"> 
    // get number from user 
var startNum = parseInt(prompt("Input a number to start counting down from.","")); 

var counter = setInterval(timer, 1000); 

console.log(startNum); 

function timer() { 
    startNum--; // reduce number by 1 
    console.log(startNum); 
    if (startNum <= 0) { 
     clearInterval(counter); 
    } 
} 

var counter = setInterval(timer2, 1000); 

var endNum = 0 

function timer2() { 
    console.log(endNum) 
    endNum++; // add number by 1 
    console.log(endNum); 
    if (endNum >= startNum) { 
     clearInterval(counter); 
    } 
} 
</script> 
+0

當您取消第一setInterval的,那麼你要開始第二個。現在你擁有它的方式,它們都在同一時間運行。另外,您在啓動第二個計時器時正在修改startNum,因此您不知道該計數到哪裏。 – RobG

回答

0

這裏有幾個問題。第一個是Rob在評論中指出的。您正在同時運行兩個功能。

你有的另一個問題是,你永遠不會存儲該號碼。你只是從本質上減去並添加任何東西。

所以 -

<script type="text/javascript"> 
    // get number from user 
var startNum = parseInt(prompt("Input a number to start counting down from.","")); 
var currentNum = startNum; 

var counter = setInterval(timer, 1000); 

function timer() { 
    console.log(currentNum); 
    currentNum -= 1; // reduce number by 1 
    console.log(currentNum); 
    if (currentNum == 0) { 
     clearInterval(counter); 
     counter = setInterval(timer2, 1000); 
    } 
} 

function timer2() { 
    console.log(currentNum) 
    currentNum += 1; // add number by 1 
    console.log(currentNum); 
    if (currentNum == startNum) { 
     clearInterval(counter); 
    } 
} 
    </script> 

像這樣的東西應該做的伎倆。基本上創建另一個變量來保存你的起始號碼,並考慮到當前的號碼和將要改變的值。

這裏有一個小提琴 - http://jsfiddle.net/w5FM6/

歡呼

+1

嗚呼!謝謝!取消了額外的console.logs,它工作完美! – Spagheddy