1 回答
TA贡献1809条经验 获得超8个赞
您的next
按钮也无法正常工作。这两个函数的问题在于,您在更改后src
更改了索引,因此新的索引src
将反映最后一次imageIndex
单击按钮之后的内容,而不是刚刚发生的单击。(并且由于硬编码为从 1 开始,因此第一次单击始终会执行“下一步”按钮应该执行的操作)imageIndex
初始化为0,并在设置之前imageIndex
更改它。src
另外,不要使用内联处理程序,它们有一个疯狂的作用域链,需要全局污染,并且有引用转义问题。改用addEventListener
:
let myImage = document.getElementById('mainImage');
let images = ["./img/th01.jpg", "./img/th02.jpg", "./img/th03.jpg", "./img/th04.jpg", "./img/th05.jpg"];
let imageIndex = 0;
const [prev, next] = document.querySelectorAll('button');
next.addEventListener('click', () => {
imageIndex++;
if (imageIndex === images.length) {
imageIndex = 0;
}
myImage.src = images[imageIndex];
});
prev.addEventListener('click', () => {
imageIndex--;
if (imageIndex === -1) {
imageIndex = images.length - 1;
}
myImage.src = images[imageIndex];
});
<div id="wrapper">
<img src="./img/th01.jpg" id="mainImage">
<br>
<br>
<button>Previous</button>
<button>Next</button>
</div>
- 1 回答
- 0 关注
- 93 浏览
添加回答
举报