DOM编程艺术中的小问题,不是特别理解,求解答 财富值100

2016-10-14 20:48发布

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) {        }   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+")";的+elementID+前面的加号和+interval+后面的加号的作用是什么呢?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答

这就是在拼接字符串

这段代码中的moveElement是循环非阻塞调用的。

此时 str -> a is1 , b is2

var str = a is + a + , b is + b;

加号是字符串拼接用的。
var repeat = "moveElement(" + elementID + "," + final_x + "," + final_y + "," + interval + ")";
这样看起来好看一点吧,双引号中间的是字符串,加号把字符串跟变量拼接起来。

那句话的意思是拼成一个函数调用表达式,然后放进setTimeout里面执行。

var a = 1;
var b = 2;

段曼 - 我很好
8楼-- · 2016-10-14 21:00

但不推荐这么写,可以写成moveElement.bind(null, elementID, final_x, final_y, interval)

需要注意点的就是 setTimeout 函数调用时,第一个参数是 字符串, 会转成 js 表达式

例如

一周热门 更多>