Colors 结合超时更改颜色

Colors 结合超时更改颜色,colors,timeout,intervals,Colors,Timeout,Intervals,我有一个超时间隔,并希望更改每个间隔的hop1和hop2的颜色。颜色在1000ms、900ms、800ms等时发生变化。为什么我的代码不起作用 var interval = 1000; var change = 1; function callback() { interval -= 100;

我有一个超时间隔,并希望更改每个间隔的hop1和hop2的颜色。颜色在1000ms、900ms、800ms等时发生变化。为什么我的代码不起作用

                var interval = 1000;
                var change   = 1;

                function callback() {

                   interval -= 100; 

                              if (change = 1)
                   {
                     mainContent1 = document.getElementById("hop1");
                     mainContent1.style.backgroundColor = "#FFFF99";
                     mainContent2 = document.getElementById("hop2");
                     mainContent2.style.backgroundColor = "#FFFFFF";
                     change += 1;
                   }

                   else if (change = 2)
                   {
                     mainContent2 = document.getElementById("hop2");
                     mainContent2.style.backgroundColor = "#FFFF99";
                     mainContent1 = document.getElementById("hop1");
                     mainContent1.style.backgroundColor = "#FFFFFF";
                     change = 1;

                   }
                    setTimeout( callback, interval, change);
                 }

            setTimeout( callback, interval, change);

将代码更改为此,并确保在达到预期间隔后停止调用setTimeout:

            var interval = 1000;
            var change   = 1;

            function callback() {

               interval -= 100; 

                          if (change == 1)
               {
                 mainContent1 = document.getElementById("hop1");
                 mainContent1.style.backgroundColor = "#FFFF99";
                 mainContent2 = document.getElementById("hop2");
                 mainContent2.style.backgroundColor = "#FFFFFF";
                 change += 1;
               }

               else if (change == 2)
               {
                 mainContent2 = document.getElementById("hop2");
                 mainContent2.style.backgroundColor = "#FFFF99";
                 mainContent1 = document.getElementById("hop1");
                 mainContent1.style.backgroundColor = "#FFFFFF";
                 change = 1;

               }
                setTimeout( callback, interval);
             }

        setTimeout( callback, interval);

if
子句中使用
=
而不是只使用
=
!单个
=
将执行赋值,而不是比较。