我正在编写一个脚本来旋转/循环浏览javascript中的图像,同时尊重它在图像中循环的次数限制。我的内容如下:
<a id="imageurl"><img id="Rotating1" border="0"></img></a>
<script language="JavaScript">
var delay = 3000; //6000 = change to next image after 6 seconds
var cycles = 2;
var currentCycle = 0;
function RotateImages(Start, delay)
{
var a = new Array("frown.gif","grim.gif","smile.gif", "bomb.gif");
var c = new Array("url1", "url2", "url3", "url4");
var b = document.getElementById('Rotating1');
var d = document.getElementById('imageurl');
var totalCycles = cycles * a.length;
// alert ("currentCycle: " + currentCycle);
// alert ("totalCycles: " + totalCycles);
if (Start>=a.length)
Start=0;
b.src = a[Start];
d.href = c[Start];
if (currentCycle < totalCycles) {
window.setTimeout("RotateImages(" + (Start+1) + ")", delay);
currentCycle++;
}
}
RotateImages(0, delay);
</script>
当我取消注释警告框时,脚本就像它一样工作。当我评论它们时,旋转似乎停止了。关于什么是真实的以及如何解决它的任何想法?
谢谢!
答案 0 :(得分:1)
也许你想改变这一行:
window.setTimeout("RotateImages(" + (Start+1) + ")", delay);
成:
window.setTimeout("RotateImages(" + (Start+1) + ", " + delay + ")", delay);
以便下次调用RotateImages时,它将保持延迟。
答案 1 :(得分:1)
需要考虑的一个基本问题是setTimeout
。第一个参数可以是对函数的引用,无论是实际引用还是字符串引用,但您不能将参数与其一起传递。
要执行您想要的操作,您需要将匿名函数传递给setTimeout。另外,Riyono也应该通过delay
setTimeout(function(){ RotateImages(Start++, delay) }, delay);
就警报问题而言,我不知道该告诉你什么。但我知道上述内容将纠正一些问题。