function moveElement(elementID,final_x,final_y,interval){
var elem = document.getElementById(elementID);
if(elem.movement){
clearTimeout(elem.movement);
}
var xpos = parseInt(elem.style.left);
var ypos = parseInt(elem.style.top);
var dist = 0;
if(xpos == final_x && xpos == final_y){
return ture;
}
if(xpos < final_y){
dist = Math.ceil((final_x - xpos)/10);
xpos += dist;
}
if(xpos > final_y){
dist = Math.ceil((xpos - final_x)/10);
xpos -= dist;
}
...
var repeat = "moveElement('" + elementID + "'," + final_x + "," + final_y + ","+ interval+")";
elem.movement = setTimeout(repeat,interval);
}
这个函数是不是调用一次clearTimeout()就清除了函数的调用啦?麻烦解释一下,谢谢

解决方案 »

  1.   

    var a=window.setTimeout是指在多少时间后调用某个方法,但在这段时间内用了window.clearTimeout(a)会取消掉这个方法的调用
    貌似就是这个样子
      

  2.   

    不是清楚函数,而是清楚settimeout
    然后代码最后又加上了开启新的settimeout,所以这个代码其实就只是setinterval而已
      

  3.   

    百度 “clearTimeout” 有很详细的说明
      

  4.   

    这个函数是不是调用一次clearTimeout()就清除了函数的调用啦?麻烦解释一下,谢谢是的,您这个写法其实就是settimeout模拟setinterval,调用一次clearTimeout()就清除了