0.5秒ごとに10回の反復で画像を変更する関数を作成しようとしています。最後の反復で、画像srcは実際の値に設定されます。これは最初のループで機能しますが、最初に起動すると、文字列ではなくオブジェクトsetTimeout
を渡します。Firebugを使用していますが、コンソールに次のように表示されます。 mo456
<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行であると確信していますが、修正方法がわかりません。