萌新求助怎么将对象作为参数传递给setTimeout中的函数

H.ref 2019-02-12 09:54:17

function moveMent2(ele,finX,finY,inter){

var xpos=parseInt(ele.style.left);
var ypos=parseInt(ele.style.top);
var dist=0;

if(ele.move){
clearTimeout(ele.move);
}

if(xpos>finX){
dist=Math.ceil((xpos-finX)/10);
xpos-=dist;
}
else if(xpos<finX){
dist=Math.ceil((finX-xpos)/10);
xpos+=dist;
}
if(ypos>finY){
dist=Math.ceil((ypos-finY)/10);
ypos-=dist;
}
else if(ypos<finY){
dist=Math.ceil((finY-ypos)/10);
ypos+=dist;
}
else if(xpos==finX && ypos==finY){
return;
}
ele.style.left=xpos+'px';
ele.style.top=ypos+'px';
console.log(xpos+'...'+ypos);

console.log(ele.getAttribute('id'));

var reapt="moveMent2("+ele+","+finX+","+finY+","+inter+")";

console.log(reapt);

ele.move=setTimeout(reapt,inter);
//此处提示错误


}
...全文
121 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
風灬雲 2019-02-13
  • 打赏
  • 举报
回复
setTimeout第一个参数是函数,不能写字符串

ele.move=setTimeout(()=>{
    moveMent2(ele,finX,finY,inter)
},inter);
天际的海浪 2019-02-13
  • 打赏
  • 举报
回复
ele.move=setTimeout(function(){ moveMent2(ele,finX,finY,inter); },inter); 或者 ele.move=setTimeout(moveMent2.bind(null,ele,finX,finY,inter),inter);
U_YangYang 2019-02-13
  • 打赏
  • 举报
回复
var time=setTimeout("alert()",1000)

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧