我想写一个函数来改变图像每半秒10次迭代。在最后一次迭代中,图像src将被设置为实际值。这适用于第一循环,但第一次setTimeout
触发它传递对象mo456
而不是串。我使用Firebug控制台显示:试图通过一个选择器,但第二次通过对象传递
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script>
function loopMoHolder(lmc,thisMoDivID){
++lmc;
ffRan = parseInt(Math.floor((Math.random()*10)+1));
console.log(lmc);
console.log(thisMoDivID);
$('#'+thisMoDivID+' .moHolder .ffbg img').attr('src','/img/moMoniker/mo'+ffRan+'.png');
if (lmc <= 10) {
setTimeout("loopMoHolder("+lmc+","+thisMoDivID+")" , 500); }
else {
$('#'+thisMoDivID+' .moHolder .ffbg img').attr('src','/img/moMoniker/mo10.png');
}
}
</script>
这是HTML
<div class="moHolder">
<div id='mo456' class="moCol ffbg"><img src="/img/moMoniker/mo1.png"></div>
</div>
我相信这个问题是setTimeout的线,但我不能确定如何纠正它。
你想要的setInterval ......可是,你真的想为一个新的IMG SRC每半秒的请求?这可能会造成糟糕的用户体验。 – 2013-02-26 23:45:37
你第一次打电话给'loopMoHolder'? – 2013-02-26 23:47:26
请不要将setTimeout和setInterval与字符串参数一起使用。总是传递一个函数。这就是我想说的。 – kapa 2013-02-26 23:47:40