2012-10-11 129 views
0

我目前正在類似於www.romneymakes.com的網站上工作。我想創建一個模擬網站右側紅色橫幅的功能。我想設計一個每秒遞增的計數器。需要JavaScript計數器功能幫助

我試圖在空白的網頁上編程,但代碼不起作用。我想知道有人能幫助我。我使用的代碼粘貼在下面。

function counter() { 
    var per_sec = c.per_second, num_of_sec = 0, total; 
    per_sec += 0.74; 
    num_of_sec++; 

    var seconds = Math.floor(num_of_sec/10); 
    total = per_sec * seconds; 

    window.alert(total); 
    } 


    setInterval('counter', 1000); 

回答

1

如果傳遞一個字符串給setInterval,它將被評估。在這種情況下,您必須通過'counter()'來調用該函數。但它是最好傳遞一個函數,而不是傳遞一個字符串,所以在您的情況,你可以簡單地寫:

setInterval(counter, 1000); 

你還定義num_of_sectotal的功能,這意味着他們將只能活該函數調用的持續時間。每次調用計數器時,num_of_sec將被設置爲0。將這些定義爲全局變量。

你也設置seconds = Math.floor(num_of_sec/10)這意味着seconds(因此你乘以它的任何東西)將在前10秒爲0。這是故意的嗎?如果你想讓你的計數器每10秒只增加一次,而不是每秒增加一次,那麼最好通過10000而不是1000作爲間隔延遲。

+0

我打算計數器增加每一秒0.74。這是否意味着「秒= math.floor()」行是不必要的,我可以擺脫它? – JaPerk14

+0

@ JaPerk14:是的,在這種情況下,那行代碼根本無法達到您的目的 –

0

更改爲:

setInterval(counter, 1000); 

此外,c沒有定義(的東西,你的計劃或許作爲參數傳遞給函數):

c.per_second