本帖最后由 lenkaren 于 2014-09-29 09:08:29 编辑

解决方案 »

  1.   

    repeat就是一段字符串,然后这段字符就是前面moveElement函数,这个函数通过定时器来触发,作为回调函数。
    elementID这样的一个ID号,你在网页中找不到,所以出现未定义。
      

  2.   

    在positionMessage()中,那个var elem=document.getElementById("message");的前后加alert();看看是否有执行到该步?
      

  3.   

    //找到问题了,
    //var repeat="moveElement("+ 'elementID' +"',"+final_x+","+final_y+","+interval+")";
    //改成:
    var repeat="moveElement('"+ elementID +"',"+final_x+","+final_y+","+interval+")";
      

  4.   

    function moveElement(elementID,final_x,final_y,interval){...}
    moveElement("message",250,250,20);
    可见,elementID是局部字符串变量,此例中的值是"message",而不是'elementID'
    var repeat="moveElement('"+ elementID +"',"+final_x+","+final_y+","+interval+")";
      

  5.   


    谢谢解答!改了代码果然生效了。可惜还不是十分理解……T-T
    是不是生效的原因是相当于执行了 :
    moveElement('elementID',250,250,20);?(抱歉一时间也不知道怎么问好,请等我有空再仔细思考下、或者要好好想该怎么问才好……诶,还在加班伤不起)再次感谢前辈的热心帮助。
      

  6.   

    在这个:
    var repeat="moveElement('"+ elementID +"',"+final_x+","+final_y+","+interval+")";
    的下页加一行:
    alert(repeat);你就知道了。
      

  7.   


    哈哈,的确懂了。关键是要把值message正确传递过去。理解后用下面的代码也能实现同样效果了~var repeat="moveElement(\""+elementID+"\","+final_x+","+final_y+","+interval+")"