私は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ファイルですか? –
PHPにあります – Mike