最近做了个状态栏滚动函数,如下
function myScroll(count,str)
{
this.str=str;
this.count=count;
var space="";
if(this.count>0&&this.count<this.str.length+1)
{
for(i=this.str.length-Math.abs(this.count);i>0;i--)
{space+=" ";}
window.status=space+this.str.substring(0,this.count);
this.count++;
}
if(this.count<0&&this.count>-(this.str.length+1))
{
window.status=this.str.substring(Math.abs(this.count),this.str.length)
this.count--;
}
if(this.count==-(this.str.length+1)){this.count=1;}
if(this.count==this.str.length+1){this.count=-1;}
setTimeout(this,1000);
};
但结果只执行了一次,这是什么原因呢?
大家帮忙分析一下。。
function myScroll(count,str)
{
this.str=str;
this.count=count;
var space="";
if(this.count>0&&this.count<this.str.length+1)
{
for(i=this.str.length-Math.abs(this.count);i>0;i--)
{space+=" ";}
window.status=space+this.str.substring(0,this.count);
this.count++;
}
if(this.count<0&&this.count>-(this.str.length+1))
{
window.status=this.str.substring(Math.abs(this.count),this.str.length)
this.count--;
}
if(this.count==-(this.str.length+1)){this.count=1;}
if(this.count==this.str.length+1){this.count=-1;}
setTimeout(this,1000);
};
但结果只执行了一次,这是什么原因呢?
大家帮忙分析一下。。
解决方案 »
- 调用时间问题
- 自动适应页面高度的框架
- <a href="JavaScript:window.external.AddFavorite('http://127.0.0.1','Page')"><font color="white">添加到收藏夹</FONT></a>有什么错?
- 求JavaScript代码注释!!!
- 请教JAVASCRIPT问题
- innerHTML 到底都干了些什么操作。
- 为什么这个会出错呀。不明白
- 用javascript提交表单时出现“拒绝访问”的错误
- javescrip 中的随机数的函数是什么呀?怎么用呀?帮我呀!我是新手!!
- 如何取得在一个帧页面中用javascript另一个帧页面表单中元素的值呀
- JS高手请进...JS时间段交错判断的函数?
- 我多次见过这样的下载站,谁能帮我找找源码
setTimout里面最好不要用this之类的
你可以这样写
setTimeout(function(){myScroll(count,str)},1000)
也可以这样写
setTimeout('myScroll('+count+',"'+str+'")',1000)
setTimeout("myScroll("+count+",'"+str+"'",1000);//这样
{
setTimeout("myScroll("+count+",'"+str+"'",1000);
}
setTimeout("myScroll("+count+",'"+str+"'",1000);
或:
setTimeout(回调函数,时间,参数1,...,参数n)。执行多次用setInterval就好了。他和setTimeout递归区别还是很大的!上面有几楼是错误的,不多说!
10楼写法明显是错误的
setTimeout("myScroll("+count+",'"+str+"'",1000);
这种写法要把执行的语句用字符串形式连接起来
count是数值型
str是字符型所以里面要用"
这跟 eval('myScroll('+count+',"'+str+'")')其实是一个意思如果要直接写函数而不是字符串形式的执行那么就要这样写
setTimeout(function(){
myScroll(count,str); //要调用的函数体
},时间)