【发布时间】:2012-08-01 03:56:02
【问题描述】:
所以在我的谷歌浏览器中的new website 上,我正在尝试使用 setInterval 函数使图像每 5 秒切换一次。这似乎可行,但是我遇到的问题是无法将属性 src 设置为 null。
var images = new Array();
images[0] = "/images/grilled-chicken-large.png";
images[1] = "/images/sizzly-steak.png";
var img = document.getElementById("img");
function changeImage() {
for (var i = 0; i < 3; i++) {
img.src = images[i];
if (i == 2){i = i - 2;};
}
}
window.onload=setInterval("changeImage()", 5000);
我知道问题是我试图在页面加载完成之前获取 id 为 img 的元素,但我已经有了一个 window.onload,所以我不知道该怎么做。另外,如果我创建一个包含 setInterval 和 img 变量的 init() 函数,页面就会冻结。
有什么想法吗?
【问题讨论】:
-
您只有
images[0]和images[1],但您正在尝试访问images[2]。 -
旁注:不要将字符串传递给
setInterval,它使用eval。传递函数:setInterval(changeImage, 5000);。此外,window.onload = setInterval(changeImage, 5000);并没有按照您的想法行事。 -
是的,刚刚意识到 bfavaretto,谢谢。火箭,你的意思是把它作为changeImage()而不是“changeImage()”传递吗?最后一行没有按照我的想法做是什么意思?
-
@Ilan:对于 cmets 来说有点太多了,请为他们创建单独的问题。最后一行执行
setInterval,然后立即将该方法的结果(它是用作ID 的整数)分配给window.onload,这没有意义。看我的回答,我已经添加了onload的东西。
标签: javascript html