我在使用JavaScript將三個計數器放在一個頁面上很掙扎。當我運行這個頁面時,計數器出現,但它們被凍結,不刷新。這裏是我的代碼:一個頁面上的兩個計數器
<!DOCTYPE html>
<head>
\t <meta charset="utf-8"/>
\t <title>Counters</title>
\t <script type="text/javascript">
\t \t function zero(element) {
\t \t if (element < 10) return element = "0" + element;
\t \t return element;
\t \t }
\t \t
\t \t function counter(day, month, id) {
\t \t var year = (new Date).getFullYear();
\t \t var today = new Date();
\t \t var vDate = new Date(year,month-1,day,9,00);
\t \t var ms_day = 24 * 60 * 60 * 1000;
\t \t
\t \t var diff = (vDate.getTime() - today.getTime());
\t \t var e_daysLeft = diff/ms_day;
\t \t var daysLeft = Math.floor(e_daysLeft);
\t \t
\t \t var e_hoursLeft = (e_daysLeft - daysLeft)*24;
\t \t var hoursLeft = Math.floor(e_hoursLeft);
\t \t
\t \t var e_minutesLeft = ((e_hoursLeft - hoursLeft)*60);
\t \t var minutesLeft = Math.floor(e_minutesLeft);
\t \t
\t \t var e_secondsLeft = Math.floor((e_minutesLeft - minutesLeft)*60);
\t \t var secondsLeft = Math.floor(e_secondsLeft);
\t \t
\t \t var text = 'Left: '
\t \t +daysLeft+' days, '
\t \t +hoursLeft+ ' hours, '
\t \t +minutesLeft+ ' minutes '
\t \t +zero(secondsLeft)+' seconds!'
\t \t
\t \t var element = document.getElementById(id);
\t \t
\t \t
\t \t if (daysLeft+hoursLeft+minutesLeft+secondsLeft <= 0) {
\t \t element.innerHTML = 'Over' ;
\t \t } else {
\t \t element.innerHTML = text;
\t \t setTimeout("counter(day,month,id)",1000)
\t \t }
\t \t }
\t \t counter(14,2,'test7');
\t \t counter(27,3,'test8');
\t \t counter(30,6,'test9');
\t \t </script>
<body onload="counter(14,2,'test7'); counter(27,3,'test8'); counter(30,6,'test9');">
\t <div id="test7"></div>
\t <div id="test8"></div>
\t <div id="test9"></div>
</body>
</html>
你能告訴我爲什麼setTimeout("counter(day,month,id)",1000)
不工作?
不應該是'setTimeout(counter(day,month,id),1000)'工作嗎? – SarathChandra