我有一个计时器脚本,我希望用户能够设置时间量。它在页面加载时加载脚本并将计时器设置为默认值时起作用,但是当我创建一个输入变量和一个调用该函数的按钮时它不起作用。 "外面"函数工作但是我从工作版本复制并粘贴到函数中的代码不起作用。即使' var countdownTimer = setInterval(' secondPassed()',1000),似乎也从未调用内部计时器功能;'是在外部功能的最后。我一直在努力修复它几个小时,我想要一个更有经验的眼睛来检查它。继承人代码:
<script type="text/javascript">
function startTimer() {
var seconds = parseInt(document.getElementById("time").value);
document.getElementById('countdown').innerHTML = seconds;
function secondPassed() {
document.write(Date());
var minutes = Math.round((seconds - 30)/60);
var remainingSeconds = seconds % 60;
if (remainingSeconds < 10) {
remainingSeconds = "0" + remainingSeconds;
}
document.getElementById('countdown').innerHTML = minutes + ":" + remainingSeconds;
if (seconds == 0) {
clearInterval(countdownTimer);
document.getElementById('countdown').innerHTML = "Buzz Buzz";
} else {
seconds--;
}
}
var countdownTimer = setInterval('secondPassed()', 1000);
}
</script>
<input id="time" type="number">
<input type="button" value="Set Timer" onClick="startTimer()">
<span id="countdown" class="timer">Timer: </span>
</body>
&#34;定时器:&#34; text由second变量的值替换,但仅由于定义了inside函数之前的行。日期()未打印在instide函数上
答案 0 :(得分:0)
您正在将字符串传递给setTimeout
,因此它会被eval
更改并且范围被破坏。只将函数传递给setTimeout
。
var countdownTimer = setInterval(secondPassed, 1000);