gpt4 book ai didi

javascript - 为什么 Javascript 函数没有被调用?

转载 作者:行者123 更新时间:2023-11-28 11:09:40 26 4
gpt4 key购买 nike

这个网站上的第一个问题,所以我希望我能做对!我有一个 javascript 函数,我想在加载页面时显示图像(image1.jpg),然后每 2 秒通过循环更改图像。然而,只显示了第一张图片,因此似乎 JS 函数没有被调用。谁能告诉我我是否在这里做错了什么,因为它对我来说看起来很好,所以无法理解为什么它不起作用。谢谢

<html>
<head>
<script type="text/javascript">
function displayImages(){
var images = ['image1.jpg', 'image2.jpg', 'image3.jpg'];
var i = 1;

if(i>images.length-1){
this.src=images[0];
i=1;
}else{
this.src=images[i];
i++;
}
setTimeout("displayImages()", 2000);
}
</script>
</head>

<body onload="displayImages();">
<img id="myButton" src="image1.jpg" />
</body>
</html>

最佳答案

您需要移动线路

var i = 1;

在 displayImages 函数之外,否则每次都会从 1 开始!

编辑:但是使用全局变量不被认为是好的做法,因此您可以使用闭包代替。另外,正如其他答案中所述,您引用的 this 并不引用图像对象,因此我更正了这一点并稍微简化了逻辑:

<script type="text/javascript">
function displayImages( i ){
var images = ['image1.jpg', 'image2.jpg', 'image3.jpg'];
var img = document.getElementById('myButton');
img.src = images[i];
i = (i+1) % images.length;
setTimeout( function() { displayImages(i); }, 2000 );
}
</script>
<body onload="displayImages(0);">

关于javascript - 为什么 Javascript 函数没有被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23264542/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com