setTimeout()中参数作用域的问题?? setTimeout其实是一个递归调用 我认为是你调用moveElement方法的时候就没有给其参数赋值吧以后递归调用还是没有这个参数的值 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这是个作用域的问题,setTimeout函数是window的函数,他的作用域是全局,而moveElement函数的作用域链是 全局 -> moveElement你的element是在moveElement函数里面定义的,全局的setTimeout函数当然是找不到的,改成下面这样就没有问题了:setTimeout(function(){ moveElement(element); },interval);具体关于作用域的问题,你可以看看下面的文章http://blog.csdn.net/hzrui/archive/2009/02/27/3941137.aspx 我用的element不是函数体中的那个,而是函数的参数id换成真正的元素。。回到这个函数,那为什么用字符串id传递就不会超出作用域啊?? 字符串作为参数传递哪有作用域啊,变量才有作用域moveElement("11", ""....你说上面的"11"会有作用域问题吗 function moveElement(id,final_x,final_y,interval)参数id就是个变量啊!它有作用域吧 "moveElement('"+id+"',"+final_x+","+final_y+","+interval+")"最终的结果是一个字符串啊,假如ID是: 11, finnl_x 是 22, final_y 是33 interval是44,事实上最后调用的是这样moveElement("11","22","33","44")而不是moveElement(id,final_x,final_y,interval) 真的要使用id这个变量的话,是这么写的setTimeout("moveElement(id+,final_x,final_y,interval)",interval); X64 IE6SP2 jquery的attr方法不能改变input的type属性吗? js怎么复制table的内容. 在线等!~~~~~~~~~~简单的js问题 请教如何加载弹出的文件?在线等,急! js完成的拖拽在FF浏览器不能实现,望高手用jquery实现! Google Mas 如何根据点击点位置画圆,然后可以删除这个圆 咨询图片自动获取宽度问题,求大神指点迷津 字符替换问题 jsp中调用showModalDialog出现的怪问题! 一个使用javascript调用activex函数的问题。 上海,寻JS高手
而moveElement函数的作用域链是 全局 -> moveElement
你的element是在moveElement函数里面定义的,全局的setTimeout函数当然是找不到的,
改成下面这样就没有问题了:
setTimeout(function(){
moveElement(element);
},interval);具体关于作用域的问题,你可以看看下面的文章
http://blog.csdn.net/hzrui/archive/2009/02/27/3941137.aspx
你说上面的"11"会有作用域问题吗
参数id就是个变量啊!它有作用域吧
最终的结果是一个字符串啊,假如ID是: 11, finnl_x 是 22, final_y 是33 interval是44,事实上最后调用的是这样moveElement("11","22","33","44")而不是
moveElement(id,final_x,final_y,interval) 真的要使用id这个变量的话,是这么写的setTimeout("moveElement(id+,final_x,final_y,interval)",interval);