var pp = 0;
function no1(o) {
    //。。
    for(k=0;k<15;k++)
    {
    }
    setTimeout('no1('+pp+')', 500);
}
function no2() {
    for (i = 0; i < 15; i++) {
    pp=i
        no1(i);
setTimeout("no2()", 500);
    }
}
意思是第二个函数执行for循环每执行一次 no1里边执行15次 每次停顿500,现在遇到的问题是 no1没有停顿,代码可以执行,

解决方案 »

  1.   

    for(k=0;k<15;k++) {
        setTimeout('no1('+pp+')', 500); //你把这行代码写到循环体外了
    }不过即便这样,你的代码还是有问题啊,no2也是每500毫秒调用一次,在这个周期内,no1也只能被调用一次,除非no2的调用周期大于15 * 500毫秒,才有可能每次调用no2执行15次no1
      

  2.   

    调试了下
    function no1(o) {
        //。。
        for(k=0;k<15;k++)
        {
        }
        setTimeout('no1('+pp+')', 500);
    }
    执行了下 no1只执行了一次,就跳出来了 
    no2的时间设置为500*16 也不管用
      

  3.   


    <script type="text/javascript" language="javascript">       
    var   col   =   new   Array();       
    col[15]   =   '#000000';       
    col[14]   =   '#111111';       
    col[13]   =   '#222222';       
    col[12]   =   '#333333';       
    col[11]   =   '#444444';       
    col[10]   =   '#555555';       
    col[9]   =    '#666666';       
    col[8]   =    '#777777';       
    col[7]   =    '#888888';       
    col[6]   =    '#999999';       
    col[5]   =    '#AAAAAA';       
    col[4]   =    '#BBBBBB';       
    col[3]   =    '#CCCCCC';       
    col[2]   =    '#DDDDDD';       
    col[1]   =    '#EEEEEE';       
    col[0]   =    '#FFFFFF';       
    var i = 0;
    var isOut = true;
    var txtleng =0;
    var txtvalue = "";
    var obj;
    function Over(o) {    if (i <= col.length) { i++; document.getElementById("span"+o).style.background = col[i]; }
        else { isOut = !isOut; i = 0; };
        setTimeout('Over(' + txtleng + ')', 300); //渐变 
       
    }      
         
         function findtxt()
         { 
      
          var i=0;
          var pp = "qwertyuioplkjj";
            for(i=0;i<pp.length;i++) {
              
            var bar=document.getElementById("zhang");
            var e=document.createElement("span");
            e.type="span";
            e.innerHTML = pp.substr(i, 1);
            e.id = "span" + i;
            txtleng = i;
            txtvalue = e.innerHTML;
            obj = bar.appendChild(e);
     
            Over(i);
            setTimeout('findtxt()', 5000); //渐变 
            }
    }我的代码是这样的
      

  4.   

    仔细考虑了一下,用setTimeout()确实不行,得用setInterval():
    <span id="demo">DEMO</span>
    <script type="text/javascript">
    var ar = ['#000', '#111', '#222', '#333', '#444', '#555', '#666', '#777', '#888', '#999', '#AAA', '#BBB', '#CCC', '#DDD', '#EEE'];
    var idx = 0;
    setInterval('t(ar)', 300);
    function t(ar) {
    document.getElementById('demo').style.color = ar[idx];
    idx ++;
    }
    </script>
      

  5.   

      for (i = 0; i < 15; i++) {
        pp=i
            no1(i);
    setTimeout("no2()", 500);
        }
    确定不会报错吗?pp=i下面不应该有个分号?你为什么确定1没有执行呢???我个人觉得当你多循环几次的时候i的值赋值给pp然后pp等于0或者3过后就找不到方法了 所以没有执行了