Jquery 如何防止此代码连续两次或多次向我显示随机选择的div?

Jquery 如何防止此代码连续两次或多次向我显示随机选择的div?,jquery,random,Jquery,Random,我对jQuery非常陌生,我已经很难做到这一点了。我在“.figures”类中有几个Div,它们被设置为“display:none”;我希望具有与现在相同的效果,但不连续显示两次或更多相同的Div。我必须以某种方式存储这个号码,这样我才能检查它是否和以前一样,对吗?我该怎么做 代码如下: (function randomFade() { var fadeDivs = $('.figures'), el = fadeDivs.eq(Math.floor(Math.random() * fa

我对jQuery非常陌生,我已经很难做到这一点了。我在“.figures”类中有几个Div,它们被设置为“display:none”;我希望具有与现在相同的效果,但不连续显示两次或更多相同的Div。我必须以某种方式存储这个号码,这样我才能检查它是否和以前一样,对吗?我该怎么做

代码如下:

(function randomFade() {
var fadeDivs = $('.figures'),
    el = fadeDivs.eq(Math.floor(Math.random() * fadeDivs.length));
    el.fadeIn('1000').delay(2000).fadeOut('1000',randomFade); 
})();

是的,您可以存储Elemet的编号,但还有另一种方法

您可以将类“.ready used”添加到正在淡入的元素中:

el.fadeIn('1000').addClass('.already-used').delay(2000).fadeOut('1000',randomFade); 
然后,您应该只选择
。没有
的图形
元素。已使用的
类:

var fadeDivs = $('.figures:not(.already-used)');
您还可以删除选择器
var fadeDivs=$('.figures:not(.ready used')后面的.code>已使用的
如果要在一行中重复同一元素但不重复2次:

$('.figures').removeClass('.already-used');
或者,您可以使用更多的类,并逐步将它们更改,从高到低的类编号,如:
.ready-used-3
更改为
.ready-used-2
,然后更改为。
ready-used-1
,如果不想重复同一元素的频率超过每四次,则更改为“无类”。选择器将是:

var fadeDivs = $('.figures:not(.already-used-3):not(.already-used-2):not(.already-used-1)');

是的,您可以存储Elemet的编号,但还有另一种方法

您可以将类“.ready used”添加到正在淡入的元素中:

el.fadeIn('1000').addClass('.already-used').delay(2000).fadeOut('1000',randomFade); 
然后,您应该只选择
。没有
的图形
元素。已使用的
类:

var fadeDivs = $('.figures:not(.already-used)');
您还可以删除选择器
var fadeDivs=$('.figures:not(.ready used')后面的.code>已使用的
如果要在一行中重复同一元素但不重复2次:

$('.figures').removeClass('.already-used');
或者,您可以使用更多的类,并逐步将它们更改,从高到低的类编号,如:
.ready-used-3
更改为
.ready-used-2
,然后更改为。
ready-used-1
,如果不想重复同一元素的频率超过每四次,则更改为“无类”。选择器将是:

var fadeDivs = $('.figures:not(.already-used-3):not(.already-used-2):not(.already-used-1)');

我继续回答“难以置信”,现在我自己回答,因为我必须稍微调整他的代码以使用我的代码:以下是使其适用于我的解决方案:

(function randomFade() {
   var fadeDivs = $('.figures:not(.already-used)'),
   el = fadeDivs.removeClass('.already-used');
   el = fadeDivs.eq(Math.floor(Math.random() * fadeDivs.length));
   el.fadeIn('1000').addClass('.already-used').delay(2000).fadeOut('1000',randomFade);
})();

我继续回答“难以置信”,现在我自己回答,因为我必须稍微调整他的代码以使用我的代码:以下是使其适用于我的解决方案:

(function randomFade() {
   var fadeDivs = $('.figures:not(.already-used)'),
   el = fadeDivs.removeClass('.already-used');
   el = fadeDivs.eq(Math.floor(Math.random() * fadeDivs.length));
   el.fadeIn('1000').addClass('.already-used').delay(2000).fadeOut('1000',randomFade);
})();

我无法使用
$('.figures').removeClass('.ready used')el=fadeDivs.removeClass('.ready used')为什么不?它应该从.figers元素中删除所有已经使用的类,并忽略没有该类的元素。如果我使用另一种代码结构,这将起作用。但是由于我使用了
var fadeDivs=$('.figures'),
(看看,)我不能使用你的版本,必须像其他
el=
一样调整它,你知道我现在的意思吗?我不能使用
$('.figures')。removeClass('.ready')el=fadeDivs.removeClass('.ready used')为什么不?它应该从.figers元素中删除所有已经使用的类,并忽略没有该类的元素。如果我使用另一种代码结构,这将起作用。但是由于我使用了
var fadeDivs=$('.figures'),
(看看,)我不能使用你的版本,不得不像另一个
el=
一样调整它,你知道我现在的意思吗?