知道为什么这段代码被破坏或无效?这不是我的代码,但它似乎是正确的,当然我可能会错过显而易见的。我只需要一个div的背景图像在/ a数组中循环到一个新的一个5秒。
var imageIndex = 0;
var imagesArray = new Array();
//Set Images
imagesArray[0] = "images/self-whitewater.png";
imagesArray[1] = "images/fishing.png";
imagesArray[2] = "images/solo-kayaking.png";
function changeBackground(){
$("main-blocki").css("background","url('"+ imagesArray[imageIndex] +"')");
imageIndex++;
if (imageIndex > imageArray.length)
imageIndex = 0;
}
$(document).ready(function() {
setInterval("changeBackground()",5000);
});
答案 0 :(得分:3)
这里有语法错误:
if (imageIndex > imageArray.length)
imageIndex = 0;
没有名为imageArray
您应该使用Web调试器在出现语法错误时向您显示。一个语法错误和Javascript可以杀死正在运行或尝试运行的每个其他脚本。
答案 1 :(得分:3)
您的问题出在if
声明中,正如@thatidiotguy所指定的那样。
但你也可以在一个oneliner上做这个,没有if
语句。
var imageIndex = 0;
var imagesArray = [
"images/self-whitewater.png",
"images/fishing.png",
"images/solo-kayaking.png"
];
function changeBackground(){
var index = imageIndex++ % imagesArray.length;
$("main-blocki").css("background","url('"+ imagesArray[index] +"')");
}
$(document).ready(function() {
setInterval(changeBackground, 5000);
});
注意imageIndex++ % imagesArray.length
。这会增加全局imageIndex
,同时确保该值不大于imagesArray.length
。
答案 2 :(得分:1)
if (imageIndex > imageArray.length)
以上一行是错误的:您应该测试 imagesArray.length 而不是
...并且您将使用> =运算符进行测试,因为索引是基于0的