Javascript检查随机数是否与last相同

时间:2014-11-08 17:49:24

标签: javascript jquery

我有一个包含多个图块的页面,我每隔2秒使用javascript在一个随机图块上切换一个类。我想添加一个检查,以便它不会连续两次切换相同的图块。像这样的东西,但这不起作用。

$(document).ready(function ()
{
var gcFlip = $('.flip').find('div');
var sameImg;
function flip()
{
    if (gcFlip.length >= 1)
   {
        var nextImg = gcFlip[Math.floor(Math.random() * gcFlip.length)];
           while(nextImg === sameImg)
               {
                   var nextImg = gcFlip[Math.floor(Math.random() * gcFlip.length)];
               }
        nextImg = sameImg;
        $(nextImg).toggleClass('transition');
   }
}
setInterval(flip, 2000);
});

1 个答案:

答案 0 :(得分:0)

这里有一些问题(@ a-wolff点击几个键),

  1. 关闭范围,移动gcFlip& currentImg在文档就绪函数之外 - 每次在循环内重新定义nextImg。将flip()函数移出doc ready f(x)中的定义。

  2. 您在转换之前设置了“当前图像”指针并且转换了分配(没有双关语),因此您在调用转换之前将nextImg重置为当前图像。

  3. 这应该更接近你正在寻找的东西。

    var gcFlip;
    var currentImg;
    
    $(document).ready(function (){
        var gcFlip = $('.flip').find('div');
        setInterval(flip, 2000);
    });
    
    function flip()
    {
        if (gcFlip.length >= 1)
        {
          var nextImg = gcFlip[Math.floor(Math.random() * gcFlip.length)];
          while(nextImg == currentImg)
          {
             nextImg = gcFlip[Math.floor(Math.random() * gcFlip.length)];
          }
          $(nextImg).toggleClass('transition');
          currentImg = nextImg;
        }
    }