2012-03-13 24 views
0

我正在爲我的代碼添加一個向上計時器。我當前的代碼倒計時,並在計時器達到0後,它將新聞信息顯示給div。整個過程將繼續,直到頁面關閉,但我想添加一個停止功能。這意味着一旦這個代碼使用遞增計數器執行10次,它將完全停止。我試圖用變量session這樣做,但它不會從1到10進行計數。它從0開始,然後隨機跳到67和210 425等等。我怎樣才能完成這個計數從1到10的計時器,然後停止腳本?加計時器集成

var cycle = 0; 
var session = 0; 

function countdown() { 
    var min = 60 * 10; 
    var max = 60 * 30; 
    return Math.floor(Math.random() * max) + min; 
} 

function search() { 
    $.getJSON('terms.php?json', function(data) { 
     $('#news_updates').attr("src", data); 
    }); 
} 


function update() { 
    if (session === 10) { 
     alert("done"); 
    } 
    if (cycle === 0) { 
     cycle = countdown(); 
     search(); 
     $('#countdown').html('<img src="loading.gif" alt="loading picture"/>'); 
     $('#countup').html(session); 

    } else { 
     var minutes = Math.floor(cycle/60); 
     var seconds = (cycle % 60); 

     if (seconds < 10) { 
      seconds = "0" + seconds; 
     } 

     $('#countdown').html(minutes + ':' + seconds); 
     cycle--; 
    } 
    session++; 
    setTimeout('update()', 1000); 
} 

回答

0

相反的:

setTimeout('update()', 1000); 

試試這個:

setTimeout(update, 1000); 

這裏有一個的jsfiddle對於這部分:

我還在if(session === 0) { ... }上添加了一個返回值,所以在10次運行後它會完全停止。不要運行另一個setTimer並重復更多然後預期)。

+0

感謝您看看這個:)有一個問題,當倒數秒鐘命中「10」的警報出現而不是完全倒計數到0.你將如何使計數只有在計時器已完全消失後0? – jeff 2012-03-13 02:48:44

+0

@jeff不知道這是你想要的,但看看這個:http://jsfiddle.net/kt2dd/1/ – 2012-03-13 03:20:59

+0

你是一個親!謝謝。感謝我正在尋找的東西。 – jeff 2012-03-13 05:51:25