JavaScript编程艺术(第二版):奇了怪了的函数

hello,这个问题有人遇到过吗,
函数没毛病,但是放进去了,也不报错,也不跑

function moveElement(elementID,final_x,final_y,interval){
    if(!document.getElementById) return false;
    if(!document.getElementById(elementID)) return false;
    var elem=document.getElementById(elementID);
    var xpos=parseInt(elem.style.left);
    var ypos=parseInt(elem.style.top);
    if(xpos==final_x && ypos==final_y){
        return true;
    }
    if(xpos<final_x){
        xpos++;
    }
    if(xpos>final_x){
        xpos--;
    }
    if(ypos<final_y){
        ypos++;
    }
    if(ypos>final_y){
        ypos--;
    }
    elem.style.left=xpos+"px";
    elem.style.top=xpos+"px";
    var repeat="moveElment('"+elementID+","+final_x+","+final_y+","+interval+"')";
    movement=setTimeout(repeat,interval);
    //这个变量,到底存放在哪里,函数比对好几次,没毛病,就是放进去动不了
}
阅读 871
1 个回答

moveElment少了一个e字母,另外这是一个函数,你把它当成字符串来拼接,它就是一个字符串了,不是一个函数。你应该这样写:

var repeat = moveElement(elementID,final_x,final_y,interval);

除此之外,你这个代码糟点有点多,我就不想说了。举一个例子,递归的终止条件,你并没有写。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题