求助一个关于对象参数的问题

myl110314427 2013-10-07 03:48:08
想做一个背景图片固定时间淡进淡出更换的幻灯片效果。

HTML代码:图片用了绝对定位,5张图片重叠在一起。


jquery代码:


效果出来的时候,只能读取到第一张图片,后面的图片都无法显示。。。

img.each(function(){alert($(this).attr('src'))});可以遍历出img里面的5张图片对象,但是下面的setTimeout('fadeImgChange('+img+','+i+')',6000);里的img却传不上值无法迭代循环。

如果把fnFadeBg()函数里的变量$bg_img变成全局变量,fadeImgChange(i);传参的时候只传入i;fadeImgChange(i)里面直接使用$bg_img这个全局变量,这样就可以正常显示我要的效果。

哪个高手帮忙解决下这个问题。。。谢谢!
...全文
136 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
myl110314427 2013-10-07
  • 打赏
  • 举报
回复
解决了-。- 确实是setTimeout里面的函数的参数只能是字符串参数,如果使用了对象参数要写在匿名函数中,和2楼的写法差不多。 window.setTimeout(function() { fadeImgChange(img,i); }, 6000);
天际的海浪 2013-10-07
  • 打赏
  • 举报
回复
setInterval(function(){fadeImgChange(img,i)},6000);
myl110314427 2013-10-07
  • 打赏
  • 举报
回复
引用 1 楼 KK3K2005 的回复:
setTimeout('fadeImgChange('+img+','+i+')',6000); ----> setInterval( function(){ fadeImgChange('img',i++) } ,6000); 即可
我按你的方法使用,和我原来的效果一样,只能淡入淡出第一张图,setInterval方法在这里和setTimeout是没有区别的,我已经使用setTimeout做了迭代循环的。 现在主要问题就是setTimeout('fadeImgChange('+img+','+i+')',6000);里面的这个img在迭代循环的时候传不进参值。img是个对象参数,我看别人说对象参数在setTimeout要用json来传参,不是很清楚什么意思,还忘大神详细指点。。。
myl110314427 2013-10-07
  • 打赏
  • 举报
回复
引用 2 楼 u010889695 的回复:
i被重新赋值0
那个i=0没问题的,是5张图片循环淡出显示,当循环到最后一张图片的时候,让i变成0,这样就可以重新从第一张图片开始循环了。
hike_2013 2013-10-07
  • 打赏
  • 举报
回复

i被重新赋值0
KK3K2005 2013-10-07
  • 打赏
  • 举报
回复
setTimeout('fadeImgChange('+img+','+i+')',6000); ----> setInterval( function(){ fadeImgChange('img',i++) } ,6000); 即可

87,991

社区成员

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

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