function fontChangeInTime (z,zNumber,time){
var i = 1,t;
document.getElementById('p1').innerHTML =z[0];
window.setInterval(function(){t = window.setTimeout(document.getElementById('p1').innerHTML =z[i], time);i++; if (i == zNumber) { i = 0 };alert(typeof z[i])},time)
}
onload=fontChangeInTime(["载","入","中"],3,1000);
console 中显示:
“Uncaught ReferenceError: 载 is not defined”
“Uncaught ReferenceError: 入 is not defined”
“Uncaught ReferenceError: 中 is not defined”
但我用“alert(typeof z[i])”,提示是“string”。。。这应该是定义了吧,但为什么会显示没定义呢??
发觉自己写复杂了。。。
function fontChangeInTime (z,zNumber,time){
var i = 1;
document.getElementById('p1').innerHTML =z[0];
window.setInterval(function(){document.getElementById('p1').innerHTML =z[i];i++; if (i == zNumber) { i = 0 }},time)
}
onload=fontChangeInTime(["载","入","中"],3,1000);
更正后就没问题了
setInteval
和setTimeout
要求你传入的第一个参数是 Function,在你的代码里setTimeout
传入的参数不对,导致变量z
其实变成了window.z
,因此是未定义的。