我想用Javascript做秒倒計時。setTimeout()不等待
這裏是我的HTML
<div id="ban_container" class="error center">Please wait
<span id="ban_countdown" style="font-weight:bold">
45</span>
seconds before trying again
</div>
而我的JS:
<script type="text/javascript">
var seconds = <?php echo $user->getBlockExpiryRemaining(); ?>;
function countdown(element) {
var el = document.getElementById(element);
if (seconds === 0) {
document.getElementById("ban_container").innerHTML = "done";
return;
}
else {
el.innerHTML = seconds;
seconds--;
setTimeout(countdown(element), 1000);
}
}
countdown('ban_countdown');
</script>
但是由於某些原因,它沒有等待的超時時間,而是執行countdown
就這樣,當我刷新它只是馬上顯示「完成」的頁面。我知道它實際上是多次執行,因爲如果我做innerHTML += seconds + " ";
它從45開始倒數。爲什麼超時被繞過?
您的腳本是在它自己的文件中還是在.php文件中? – 2013-03-02 05:56:53
這是在PHP – Mike 2013-03-02 06:04:11