在Javascript中使用setInterval和clearInterval需要帮助吗

在Javascript中使用setInterval和clearInterval需要帮助吗,javascript,Javascript,我正在创建一个web小部件,尝试根据从下拉列表中选择的选项从多个目录加载图像。如果我选择选项1,它应该选择第一个目录,并以7秒的间隔从该目录加载图像。如果我选择选项2,它应该选择一个不同的目录,并以7秒的间隔从该目录加载图像。我在Javascript中使用setInterval选项。当我选择选项1时,它工作正常,并以7秒的时间间隔逐个加载图像,但当我在下拉列表中选择选项2时,时间间隔从7秒缩短。我尝试使用clearInterval,遵循一些解决方案,但对我无效。我还提到 下面是我的代码: sel

我正在创建一个web小部件,尝试根据从下拉列表中选择的选项从多个目录加载图像。如果我选择选项1,它应该选择第一个目录,并以7秒的间隔从该目录加载图像。如果我选择选项2,它应该选择一个不同的目录,并以7秒的间隔从该目录加载图像。我在Javascript中使用setInterval选项。当我选择选项1时,它工作正常,并以7秒的时间间隔逐个加载图像,但当我在下拉列表中选择选项2时,时间间隔从7秒缩短。我尝试使用clearInterval,遵循一些解决方案,但对我无效。我还提到

下面是我的代码:

selectCity.addEventListener("change", () => {

    celeb.src = `${directory}/image1.png`;
    
    images = [];

    images[0] = `/${directory}/image1.png`;
    images[1] = `/${directory}/image2.png`;
    images[2] = `/${directory}/image3.png`;

    var setint = window.setInterval(changeImage, 7000);
    var x = 1;

    function changeImage() {
      celeb.src = images[x];
      console.log(images[x]);
      x++;
      if (images.length == x) {
        x = 0;
        window.clearInterval(setint);
        setint = window.setInterval(changeImage, 7000);
      }     
    }
}

一旦selectCity被更改,我想使用clearInterval。我是HTML和Javascript的初学者。请说明我在这段代码中做错了什么。

一般来说:

  • 如果需要连续调用函数,请使用
    setInterval
  • 如果要延迟函数调用,请使用
    setTimeout
对你来说。如果
selectCity
发生更改,则需要延迟更改图片。因此,请改用
setTimeout

示例:

让currentIndex=0
选择City.addEventListener('change',()=>{
设置超时(()=>{
if(images.length
在浏览器中测试
setTimeout

document.getElementsByTagName('button')[0]。addEventListener('click',function(){
setTimeout(()=>console.log('Clicked'),5000)
})

控制台5秒后
我想你应该改用
setTimeout()
。看起来间隔不到7秒,但我认为这只是一个以上的并行运行…谢谢你的回复!对不起,我的问题不清楚。我尝试设置超时,它在加载第一个图像后停止。我已经更新了我的问题。你能帮个忙吗?哦,我刚刚注意到了!您没有关闭
selectCity.addEventListener(
function!-在代码的最后!您没有使用
select.selectedIndex
来更改图像目录。另外,您使用的代码是什么-
images
?@iAmOren我已经添加了图像代码。当我从下拉列表中选择一个选项时,我正在更改目录。问题是它正在选择当我更改选项时,请正确地从不同的目录中删除图像,但我面临的问题是,对于新目录,图像之间的时间跨度从7秒缩短。感谢您的答复!很抱歉,我不清楚我的问题。我尝试了setTimeout,但在加载第一个图像后它停止。我已更新你能帮我解决这个问题吗?