开发者社区> 问答> 正文

function moveElement()函数

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 = ypos + "px";
var repeat = "moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")";
movement = setTimeout(repeat,interval);
}

请问各位老师,在此函数中var repeat = "moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")"; 为什么要拼接成一个字符串,不能写成这样
var repeat = "moveElement("elementID",final_x,final_y,interval)";
初学JavaScript,此处不理解,请各位老师指教,多谢!

展开
收起
小旋风柴进 2016-03-19 12:42:16 2794 0
1 条回答
写回答
取消 提交回答
  • 因为setTimeout参数是一个字符串,这个字符串本身是一个函数调用,中间的参数是要传递进去的,就是elementID是参数值,动态拼接生成的。
    如果写成你说的那样,那么参数值就是“elementID"这个字符串,而不是具体的元素ID变量了。

    2019-07-17 19:08:00
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载