我有一个包含多个图块的页面,我每隔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);
});
答案 0 :(得分:0)
这里有一些问题(@ a-wolff点击几个键),
关闭范围,移动gcFlip& currentImg在文档就绪函数之外 - 每次在循环内重新定义nextImg。将flip()函数移出doc ready f(x)中的定义。
您在转换之前设置了“当前图像”指针并且转换了分配(没有双关语),因此您在调用转换之前将nextImg重置为当前图像。
这应该更接近你正在寻找的东西。
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;
}
}