我在定义candidate
现在我也为这些相同的元素定义了13个不同的类,如下所示:
can1
,can2
,can3
,can4
,can5
,can6
,can7
,can8
,can9
,can10
,can11
,can12
,can13
我需要每隔5秒左右同时切换每个元素类一次,但保持在所有元素上定义candidate
类,只需要更改can
类。我需要更改类,以便它们每5秒减1,除非定义了can1,它将切换到can13。所以......
can1变为can13 can2成为can1 can3成为can2 等等......一直到can13可以成为can12
在课堂改变期间,它也需要为该课程设置动画,所以我认为我需要switchClass
才能完成此任务。但究竟这样做的最佳和最有效的方法是什么?
可以使用以下方法获取1中的所有元素:
$(".candidate").switchClass(... code);
但我现在因为上课和改成新班而搞砸了,所以我该怎么做?
另外,我在每个元素上定义了data-class
,其实际NUMBER代表can
类。因此,如果该元素的类为can1
,则data-class
的值为1
,如果该元素的类别为can2
,则为data-class
该元素的值为2
,依此类推......
我如何利用这个优势并每5秒减少can
类的最后一个数值?所以我注意到switchClass
方法可以将queue
选项设置为false
,这可能是我想要的,但同样,如何将它用于此目的?我希望switchClass
我是否必须对此进行.each()
?
答案 0 :(得分:1)
如果类的范围从0到12而不是1到13会更好。这样您就可以轻松使用模运算。如果它们必须是1到13,那么只需在计算模数后进行加法,即nextClassId = (currentClassId % 13) + 1;
(但这对我来说似乎更令人困惑)。
setInterval(function() {
$('.candidate').each(function() {
var $this = $(this),
currentClassId = Number($this.data('class')),
nextClassId = (currentClassId + 1) % 13;
$this.switchClass('can' + currentClassId, 'can' + nextClassId);
$this.data('class', nextClassId);
});
}, 5000);