【问题标题】:clearInterval not working after 6 time setIntervalclearInterval 在 6 次 setInterval 后不起作用
【发布时间】:2015-03-07 19:49:26
【问题描述】:

我想将图像更改 6 次以创建骰子改变点数的错觉(一个简单的动画)。但图像不会在 6 次之后停止。我认为 clearInterval 不起作用!不知道为什么

   var d = [  "images/dado1.svg",
              "images/dado2.svg",
              "images/dado3.svg",
              "images/dado4.svg",
              "images/dado5.svg",
              "images/dado6.svg",
              ];

window.onload = function (){
                dado.onclick = move;
            }

   function move() {

                 var md = setInterval(mudaDado,500);

                }


    function mudaDado(){

      dado.setAttribute("src",d[time]);

      time++;

      if(time===6){
      clearInterval(md);

      }

    }

【问题讨论】:

  • md 未在您调用clearInterval(md); 的范围内定义。在setIntervalclearInterval 调用的公共范围内定义md
  • 你在函数内部定义了md,所以它是一个局部变量。在下一阶段,您尝试将clearInterval 用于md,这指的是无处。补充:@FelixKling 先回答了。
  • 谢谢!有用。我没注意到

标签: javascript counter setinterval clearinterval


【解决方案1】:

将 md 分配给全局变量:-

var md;
 var d = [  "images/dado1.svg",
              "images/dado2.svg",
              "images/dado3.svg",
              "images/dado4.svg",
              "images/dado5.svg",
              "images/dado6.svg",
              ];

window.onload = function (){
                dado.onclick = move;
            }

   function move() {

                 md = setInterval(mudaDado,500);

                }


    function mudaDado(){

      dado.setAttribute("src",d[time]);

      time++;

      if(time===6){
      clearInterval(md);

      }

    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-15
    • 2021-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-25
    • 1970-01-01
    相关资源
    最近更新 更多