我已经在这方面工作了很长一段时间。我正在尝试创建一个倒计时的简单计时器。我已经使alert()工作,但不幸的是textToChange没有改变。我在下面复制了我的代码副本。任何帮助将不胜感激!谢谢。
<script type="text/javascript">
var timeLeft = 0;
var changingTextElement;
var changingText = new Array();
var ctr = 0;
function timeMsg(thing)
{
var length = thing.inputbox.value*1000;
var t = setTimeout("alertMsg()",length);
timeLeft = length/1000;
initChangeText();
}
function alertMsg()
{
alert("Alert!");
}
function initChangeText(){
changingTextElement = document.getElementById("textToChange");
changingText[ctr] = changingTextElement.innerHTML;
ctr++;
while(timeLeft > 0){
changingText[ctr] = timeLeft;
timeLeft--;
ctr++;
}
ctr = 0;
setInterval("changingText()",1000);
}
function changingText() {
ctr++;
if(ctr >= changingText.length){
changingTextElement.innerHTML = 0;
}
else{
changingTextElement.innerHTML = changingText[ctr];
}
}
</script>
答案 0 :(得分:3)
您正在使用changingText
函数和changingText
数组...
看到冲突?
作为附加信息,
不要在setInterval
方法中使用字符串作为名称函数。直接使用对方法的引用
setInterval(changingText, 1000);
答案 1 :(得分:1)
对于简单的倒数计时器,此代码太大了。基本上,你应该做的是:
setInterval
启动计时器,递减计数器并显示这可以很简单:
var countFrom;
var timer;
function run_timer() {
document.getElementById("textToChange").innerHTML = --countFrom;
// !0 evaluates to true, if the counter reaches 0 (wait 0 seconds) ...
if (!countFrom) {
clearInterval(timer);
alert("Timer finished!");
}
}
function init_timer () {
// stop previous timers if any
clearInterval(timer);
// start counting from 30 seconds
countFrom = 30;
timer = setInterval(run_timer, 1000);
}
答案 2 :(得分:0)
你的小提琴版。我更改了功能名称