关于JavaScript DOM编程艺术 第十章示例代码的疑问?

这段代码摘抄自Javascript DOM编程艺术第2版 第十章 192页

请问倒数第二行变量 movement 有什么作用??只有时间函数也可以运行,没看到哪里用到这个变量啊。192页说动画效果不正确是由全局变量引起的,不懂怎么影响到的

代码如下 moveElement.js

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); 
  //上面
}

谢谢各位大神的指导!

阅读 1.2k
1 个回答

保存延迟器句柄,用于清除延迟器,不清除会有内存泄漏

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题