直接上代码function action(event){
var thisId = event.currentTarget.id;
var littleBoxs = document.getElementById("box").childNodes;

while(parseInt(getWidth(thisId)) < 350){
for(var i = 0;i < littleBoxs.length;i++){
if(littleBoxs[i].id != null){
if(getNumber(littleBoxs[i].id) != getNumber(thisId)){
downWidth(littleBoxs[i].id);
}
}
}
addWidth(thisId);
doNothing();
}

}function doNothing() {
setTimeout("doNothing()",100);
}这是主要的程序,doNothing函数用来延时,这么设置为什么不行

解决方案 »

  1.   

    没看懂你要干嘛?问题是什么?  是想重复执行还是什么 看你的代码 想每隔100重复执行 action? 那你就可以settimeout里面action啊
      

  2.   

    他会每100毫秒执行一次doNothing,而且貌似是个无限执行的样子,这期间并不会阻碍其他代码的执行
      

  3.   

    setTimeout("action()",100); 为什么我这么弄也不行呢
      

  4.   


    setTimeout("doNothing()",100);不等于Thread.sleep();
    放弃吧亲
      

  5.   

    哈哈,我也估计你是想用sleep延时吧,setTimeout是异步延时调用,运行下下例你会有启发<!doctype html>
    <html>            
    <body>
    <script type="text/javascript"> 
    temp() 
    function temp() 

    var hr=document.createElement("hr");
    document.getElementsByTagName("body")[0].appendChild(hr);
    //do sth here
    setTimeout("temp()",1000);

    </script> 
    </body>
    </html>
      

  6.   

    你这代码是想实现什么啊?从你上面的代码,我猜测你是想让下面这段代码每间隔100ms循环一次
    while(parseInt(getWidth(thisId)) < 350){    for(var i = 0;i < littleBoxs.length;i++){        if(littleBoxs[i].id != null){        if(getNumber(littleBoxs[i].id) != getNumber(thisId)){            downWidth(littleBoxs[i].id);        }        }    }    addWidth(thisId);    doNothing();    }
      

  7.   


    ~~虽然js是单线程的,但是setTimeout是类似于伪多线程的存在。。不能阻塞程序的~
      

  8.   

    function action(event){
    var thisId = event.currentTarget.id;
    var littleBoxs = document.getElementById("box").childNodes;
    doNothing()
    }function doNothing() {
    for(var i = 0;i < littleBoxs.length;i++){
    if(littleBoxs[i].id != null){
    if(getNumber(littleBoxs[i].id) != getNumber(thisId)){
    downWidth(littleBoxs[i].id);
    }
    }
    }
    addWidth(thisId);
    doNothing();
    setTimeout("doNothing()",100);
    }
      

  9.   

    这样看行不行,因为不知道 downWidth(); addWidth()函数里面写的什么。所以暂时这样试试。应该是这个思路。function action(event){
    var thisId = event.currentTarget.id;
    var littleBoxs = document.getElementById("box").childNodes;
    doNothing(thisId,littleBoxs);
    } function doNothing(thisId,littleBoxs) {   
    if(parseInt(getWidth(thisId)) < 350){
    for(var i = 0;i < littleBoxs.length;i++){
    if(littleBoxs[i].id != null){
    if(getNumber(littleBoxs[i].id) != getNumber(thisId)){
    downWidth(littleBoxs[i].id); 
    }     

    }  
    addWidth(thisId); 
    setTimeout(function(thisId,littleBoxs){doNothing(thisId,littleBoxs)},100);    
    }    }
      

  10.   

    这是什么意思呀,看不懂啊。为什么要把要暂停的函数放到数组window.eventList,为什么不直接用setTimeout调用
      

  11.   

    我看了下。楼主大概是想延时实现那种效果。下面这种方法可以帮你实现
    javascript模拟sleep
      

  12.   

    function doNothing() {
        setTimeout("doNothing()",100);
    }那不是死调用吗?有问题