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