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,此处不理解,请各位老师指教,多谢!
因为setTimeout参数是一个字符串,这个字符串本身是一个函数调用,中间的参数是要传递进去的,就是elementID是参数值,动态拼接生成的。
如果写成你说的那样,那么参数值就是“elementID"这个字符串,而不是具体的元素ID变量了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。