2012-10-11 3 views
0

현재 www.romneymakes.com과 유사한 웹 사이트에서 작업하고 있습니다. 웹 사이트 오른쪽의 빨간색 배너를 시뮬레이트하는 함수를 만들고 싶습니다. 매초마다 증가하는 카운터를 프로그램하고 싶습니다.자바 스크립트 카운터 기능 도움이 필요합니다.

빈 웹 페이지에서 프로그래밍을 시도했지만 코드가 작동하지 않습니다. 누군가가 나를 도울 수 있는지 알고 싶습니다. 내가 사용하고있는 코드는 아래에 붙여 넣습니다.

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()'을 전달해야합니다. 그러나 그것은 오히려 문자열을 전달하는 대신, 함수를 전달하는 것이, 그래서 당신의 시나리오에서 당신은 간단하게 작성할 수 있습니다 또한 내에서 기능을 num_of_sectotal을 정의하고

setInterval(counter, 1000); 

, 그들은 단지를 위해 살 것이다 의미 해당 함수 호출의 지속 기간. num_of_sec은 카운터가 호출 될 때마다 0으로 설정됩니다. 이들을 전역 변수로 정의하십시오.

seconds = Math.floor(num_of_sec/10) 또한 seconds (따라서 사용자가 곱한 값)은 처음 10 초 동안 0이됩니다. 이것은 의도적입니까? 카운터를 초당 매 10 초마다 한 번만 증가 시키려면 간격 지연으로 1000 대신에 10000을 전달하는 것이 좋습니다.

+0

나는 증가 카운터를위한 1 초마다 0.74입니다. 이것은 "seconds = math.floor()"라인이 필요 없으며 제거 할 수 있다는 것을 의미합니까? – JaPerk14

+0

@ JaPerk14 : 그렇습니다. 그 경우 코드 라인이 당신의 목적에 전혀 도움이되지 않습니다. –

0

변경에 :

setInterval(counter, 1000); 

또한, c이 정의되지 않은 (당신은 아마 함수에 인수로 전달할 계획 무엇인가?) :

c.per_second 
관련 문제