2012-06-06 2 views
1

누군가가 한 페이지에 두 개의 자바 스크립트 카운터를 구현할 수있게 도와 줄 수 있습니까? 현재 카운터가 실행 중이지만 다른 카운터에 대해 새 div를 만들려고하면 원래 카운터가 사라지고 카운터 하나만 표시됩니다. 이것은 첫 번째 게시물이므로 엉망인 형식을 변명하십시오. 나는 대단히 도움을 주시면 감사하겠습니다. 고맙습니다! 마지막 하나는 첫 번째를 덮어 쓰게됩니다, 당신은 두 개의 window.onload 스크립트를 사용할 수 없습니다자바 스크립트 카운터 - 동일한 페이지에 둘 이상의 카운터를 포함시키는 방법?

<div id="counter"></div> 
<div id="counter1"></div> 


<script type="text/javascript"> 
var START_DATE = new Date("July 27, 2010 13:30:00"); // put in the starting date here 
var INTERVAL = 1; // in seconds 
var INCREMENT = 2; // increase per tick 
var START_VALUE = 9001; // initial value when it's the start date 
var count = 0; 

window.onload = function() 
{ 
var msInterval = INTERVAL * 1000; 
var now = new Date(); 
count = parseInt((now - START_DATE)/msInterval) * INCREMENT + START_VALUE; 
document.getElementById('counter').innerHTML = addCommas(count); 
setInterval("count += INCREMENT; document.getElementById('counter').innerHTML = 
addCommas(count);", msInterval); 
} 
</script> 


<script type="text/javascript"> 
var START_DATE = new Date("July 27, 2011 13:30:00"); // put in the starting date here 
var INTERVAL = 1; // in seconds 
var INCREMENT = 2; // increase per tick 
var START_VALUE = 8001; // initial value when it's the start date 
var count = 0; 

window.onload = function() 
{ 
var msInterval = INTERVAL * 1000; 
var now = new Date(); 
count = parseInt((now - START_DATE)/msInterval) * INCREMENT + START_VALUE; 
document.getElementById('counter1').innerHTML = addCommas(count); 
setInterval("count += INCREMENT; document.getElementById('counter1').innerHTML = 
addCommas(count);", msInterval); 
} 
</script> 


<script type="text/javascript"> 
function addCommas(nStr) 
{ 
nStr += ''; 
x = nStr.split('.'); 
x1 = x[0]; 
x2 = x.length > 1 ? '.' + x[1] : ''; 
var rgx = /(\d+)(\d{3})/; 
while (rgx.test(x1)) { 
    x1 = x1.replace(rgx, '$1' + ',' + '$2'); 
} 
return x1 + x2; 
} 
</script> 
+1

당신은 단지 코드를 다시 복사 할 수있는 최초의 것입니다. 모든 변수는 같은 이름을 가지고 있습니다! 최소한 두 번째 카운터를 다른 변수 이름으로 정의해야합니다. – sachleen

답변

1

:

여기 내 코드입니다.

동일한 코드를 다시 사용하고 다음 카운터에 다음 카운터를 추가하기 만하면됩니다.

window.onload = function() 
{ 
    var msInterval = INTERVAL * 1000; 
    var now = new Date(); 
    count = parseInt((now - START_DATE)/msInterval) * INCREMENT + START_VALUE; 
    document.getElementById('counter').innerHTML = addCommas(count); 
    setInterval("count += INCREMENT; document.getElementById('counter').innerHTML = addCommas(count);", msInterval); 
    document.getElementById('counter1').innerHTML = addCommas(count); 
    setInterval("document.getElementById('counter1').innerHTML = addCommas(count);", msInterval); 
} 

편집 : 증가는 한 번만 계산 그렇지 않으면 두 번째 카운터는 앞서 항상

+0

또한 들러주십시오. –

+0

답변을 제공해 주셔서 감사합니다. 나는 두 카운터를 모두 보여줄 수 있었고 훌륭했습니다. 한 번만 더 질문하기 - 두 개의 카운터를 별도의 값으로 증가시킬 수 있습니까? 두 개의 카운터는 모두 동일한 정확한 숫자를 표시하고 있으며 각 카운터에 고유 한 값과 시작일을 부여하고 싶습니다. 모든 도움을 주셔서 다시 한 번 감사드립니다! – Matt

+0

당신이 찾고있는 것이 일반적으로 프로그래밍에 대한 좋은 자습서라고 생각합니다. Javascript의 측면에서이 스크립트는 당신을 도울 것입니다. 당신이 그것을 즐길 수 있다는 것을 알고 있습니다. https://developer.mozilla.org/en -US/learn/javascript –

관련 문제