无法使用 cleartimeout 暂停幻灯片放映

Can't pause slideshow with cleartimeout

所以我正在学习 javascript,目前我正在做一项作业,我需要创建一个带有暂停按钮的横幅来循环显示多个图像,问题是,我似乎做不到用 clearTimeout()

暂停
var images = [];
var timer;

images[0] = 'destaque-home.png';
images[1] = 'destaque-home-1.png';
images[2] = 'destaque-home-2.png';



function changeImg(){
    
    document.MoveBanner.src = images[i];
        
    if(i < images.length - 1){
        i++;
    } else {
        i = 0;
    }
    var timer = setTimeout("changeImg()", 1000);
    console.log(timer);
}       

function LeftArrow() {
        i--;
    if (i < 0){
        i=2;
    }
    document.MoveBanner.src = images[i];
}

function RightArrow() {
    document.MoveBanner.src = images[i];
        i++;
    if (i > 2){
        i=0;
    }
}

function PauseBut() {
    clearTimeout(timer);
}

window.onload = changeImg;``` 

var timer = setTimeout("changeImg()", 1000);

因为您使用了var,所以您创建的变量与代码顶部声明的全局var timer 变量不同。这意味着 PauseBut 函数正在尝试使用错误的 timer.

清除超时

改为使用全局范围的 timer:

timer = setTimeout("changeImg()", 1000);