谎言中等待 2021-12-03 20:18 采纳率: 0%
浏览 7

轮播图 为什么函数每次都被被连续调用两次

为什么函数每次都被被连续调用两次

 

  • 写回答

1条回答 默认 最新

  • m0_54204465 2023-01-16 15:38
    关注

    在上面的代码中,函数 toggle() 被连续调用两次的原因是因为 setInterval() 函数的回调函数中再次调用了 toggle() 函数。
    setInterval(function(){toggle(curIndex % lis.length)},2000);

    这行代码表示每隔 2000 毫秒,就会调用 toggle(curIndex % lis.length) 函数。而这个函数的 curIndex 变量在上面的 toggle() 函数中被定义和改变了。

    解决方法:

    你可以在setInterval()函数中设置一个变量来记录当前图片的索引,而不是在 toggle() 函数中使用全局变量来记录当前图片索引。可以在 setInterval() 函数中更改 curIndex 的值,而不是将其传递给 toggle() 函数作为参数。这样,每次调用 toggle() 函数时都会使用最新的 curIndex 值。

    也可以在setInterval()中使用clearInterval()来停止轮播图函数的调用。
    或者在每次调用完之后,在setInterval()中改变调用函数

    评论

报告相同问题?

问题事件

  • 创建了问题 12月3日

悬赏问题

  • ¥15 我想在WPF的Model Code中获取ViewModel Code中的一个参数
  • ¥15 arcgis处理土地利用道路 建筑 林地分类
  • ¥30 java 项目中同包中,无法在子文件中引用
  • ¥20 使用visual studio 工具用C++语音,调用openslsx库读取excel文件的sheet问题
  • ¥100 寻会做云闪付tn转h5支付链接的技术
  • ¥15 DockerSwarm跨节点无法访问问题
  • ¥15 使用dify通过OpenAI 的API keys添加OpenAI模型时报了“Connection Error”错误
  • ¥40 想找个软件,但我不知道怎么找到它,我甚至不知道有没有
  • ¥15 怎么把60秒的视频时长改成显示0秒?且视频内容没有任何变化的正常播放?目的是为了解决一些平台对视频时长的要求,最好有自动处理的工具!
  • ¥15 累加器设初值为00H