setInterval中变量未定义?

dxhdxh2k 2011-11-02 07:15:12
代码如下:但出现"j未定义"错误,明明是已经定义了!错误在何处?如何改?
j=5;
barValue="20";
setInterval("dispBar((j-1),barValue)",1);

其中dispBar(numOption,percent){
for(var i=1;i<=numOption;i++)
{
var imgID=document.getElementById("img"+i);
.........
}
...全文
190 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hch126163 2011-11-03
  • 打赏
  • 举报
回复
setInterval(function(){
dispBar((j-1),barValue);
},1);
agui54762 2011-11-03
  • 打赏
  • 举报
回复
楼上解释得很好,3楼写的很好
setInterval("dispBar((j-1),barValue)",1); 这样写,j就不是变量了而是个字符串'j',barValue也是一样
必须得setInterval("dispBar(("+(j-1)+"),"+barValue+")",1);
liangws 2011-11-02
  • 打赏
  • 举报
回复
补充下
setInterval里面第一个参数如果用字符串的话,它会做类似eval的操作,所以不太建议用字符串
liangws 2011-11-02
  • 打赏
  • 举报
回复
我个人习惯是不喜欢用字符串的
我会这样做

j = 5;
barValue = "20";
setInterval(function(){
dispBar((j-1),barValue);
},1);
hookee 2011-11-02
  • 打赏
  • 举报
回复

j = 5;
barValue = "20";
setInterval("dispBar(" + (j-1) + ", " + barValue + ")",1);


hookee 2011-11-02
  • 打赏
  • 举报
回复

j = 5;
barValue = "20";
setInterval("dispBar((" + j + "-1), " + barValue + ")",1);

dxhdxh2k 2011-11-02
  • 打赏
  • 举报
回复
但如果直接使用值,如setInterval("dispBar(3,barValue)",1);则可以执行。
不知错误在何处?

87,921

社区成员

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

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