简单Javascript图像旋转未正确循环
这是一个不起作用的简单旋转脚本。它有四个警报:currentImage、1、2和3。在FF中,它经过四次警报并停止。在铬合金中,它经过五次。图像在两种浏览器中只更改一次简单Javascript图像旋转未正确循环,javascript,rotation,Javascript,Rotation,这是一个不起作用的简单旋转脚本。它有四个警报:currentImage、1、2和3。在FF中,它经过四次警报并停止。在铬合金中,它经过五次。图像在两种浏览器中只更改一次 function rotateImages(currentImage, id) { var dir = "/images/"; var a = new Array("coolspider1.jpg", "coolspider2.jpg", "coolspider3.jpg"); var b = document.g
function rotateImages(currentImage, id) {
var dir = "/images/";
var a = new Array("coolspider1.jpg", "coolspider2.jpg", "coolspider3.jpg");
var b = document.getElementById(id);
if(currentImage >= a.length){
currentImage=0;}
//loop stops here in ff
alert(a[currentImage]);
//loop stops here in chrome
b.src = dir + a[currentImage];
alert(1);
currentImage++;
alert(2);
rotator = window.setTimeout("rotateImages(" + currentImage + "," + id + ")",500);
alert(3);
}
这里有很多问题:
- 每次使用getElementById访问DOM的次数太多。而是传递元素
- 每次都创建相同的数组<代码>变量a=新数组(…)可以创建一次
- 您从未分配给
currentImage
- 对于(i;等)setTimeout(func,500+i*500,params…),您使用setTimeout的方式很奇怪,而不是一个简单的循环,
- 您正在使用警报进行某些操作。。。不确定
window.setTimeout("rotateImages(" + currentImage + "," + id + ")",500);
与:
获取…的可选参数。。。嗯,参数
window.setTimeout(rotateImages,500, currentImage, id);