var repeat= "moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")";
movement=setTimeout(repeat,interval);
將你的elementID的值作為字符串參數傳遞。否則就是傳遞elementID的值的變量或者對象
如elementID="mydiv",加不加引號就變成
moveElement('mydiv',x,y,interval)和moveElement(mydiv,x,y,interval),不加的話mydiv變量必須是window作用域下變量或者dom中存在id為mydiv的控件,否則你再次引用到這個變量就會報錯,而且如果你的moveElement是通過document.getElementById獲取控件的話,不加時mydiv為控件就會報錯。如果存在window作用域下的字符串變量才不會報錯
setTimeout第一個參數最好不要傳遞字符串值,效率低下,而且你串接成字符串也麻煩,包含單雙引號還得注意轉義。改成下面的就行。之前回過這個問題。。樓主還沒搞清楚
// var repeat= "moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")";
movement=setTimeout(function(){
moveElement(elementID,final_x,final_y,interval);
},interval);