window.onload=init;function init(){
var alink =null;
alink = document.getElementById("nav").getElementsByTagName("A"); for(var i=0;i<alink.length;++i)
{
var mar = 35;
var time1=null;
while(mar > 0)
{
time1=window.setTimeout("",15);   //此处不执行,直接跳过,返回为undefined
alert(time1);
mar=mar-5;

alink[i].style.marginTop=""+mar+"px";
}
}
}新手,谢谢帮忙!

解决方案 »

  1.   

    try:
    time1=window.setTimeout(function(){alert(1);},15); 
      

  2.   

    time1=window.setTimeout("",15); 你这个用法就是错误的。语法是setTimeout(code,millisec),隔millisec这么多毫秒后执行code所代表的代码,不是在这里中断运行。
      

  3.   

    我也试过将mar=mar-5放入引号内,但是结果一样的,不执行
      

  4.   

    try:
    time1=window.setTimeout(function(){mar=mar-5;},15); //此处不执行,直接跳过,返回为undefined
      

  5.   

    试过了,死循环,也就是说此时连“mar=mar-5;”不执行了。什么原因????
      

  6.   

    去下载一本JavaScript.chm 的文档
    当字典用 对你不错
      

  7.   

    <script type="text/javascript">
    window.onload=init;
    var alink =null;
    var time1=null;
    var mar = 350;
    function init()
    {
    alink = document.getElementById("nav").getElementsByTagName("A");
    for(var i=0;i<alink.length;++i)
    {
    if(mar>0) 
    alink[i].style.marginTop=mar+"px";mar-=5;
    }
    setTimeout("init()",50)
    }
    </script>
    <div id="nav">
    <a href="" style="display:block">xx</a> <a href="" style="display:block">nnn</a>
    </div>
      

  8.   

    setTimeout("init()",50)
    或者setTimeout(init,50)
      

  9.   

    9楼的代码我看过了,非常感谢,但是不能实现我想要的效果。有谁能解释一下我失败的原因吗,settimeout中不能把""当做空语句执行吗,另问一下,为什么要将<a>标签"display:block",再次感谢
      

  10.   

    display:block;   为不为 block 跟执行这段代码没关系楼主你首先的明白 setTimeout运行机制   setTimeout(code,millisec);
    code方法不能为空必须得有个事件
    millisec延时的时间setTimeout(move,10);
      

  11.   

    setTimeout 已经开了一个线程去执行了,不会顺序执行的这个时候,你需要将你继续要执行的代码放到 第一个参数里面去,过了 第二个参数 的毫秒 之后,就会执行第一个参数里面的内容。。
      

  12.   

    setTimeout("你定义的函数名",毫秒数);