jQuery 从数组中旋转类

标签 jquery css arrays loops

我正在努力思考这个特定功能的逻辑,但我很难做到。

特征

我有五个带有 ID 的 div,我希望能够将它们的类增加一到五个。

div#fuel.one

div#fire.two

div#blah.three

div#test.four

div#rain.five

我有五个类别的数组,我想轮换这五个 div,提高他们的类别(或从五个减少到一个)。理想情况下,此更改在 div 之间稍微错开(大约 100 毫秒)。

处理此问题的最佳方法是什么?遍历我的数组?将 ID 存储在第二个数组中,并与第二个计数器错开,当换出类时从哪里开始?任何建议将不胜感激。

** 编辑:代码**

var theClasses = ["one","two","three","four","five"];
setInterval(function() {
    for (var i=0; i<theClasses.length; i++) {
        $(".frame-one .hotspot").index(i).removeClass().addClass("hotspot "+ theClasses[i]);
    }
    theClasses.add(theClasses.shift());
}, 5000);

这会引发“未捕获的类型错误:未定义不是函数”错误。

编辑:工作代码

var theClasses = ["one","two","three","four","five"];
setInterval(function() {
        theClasses.push(theClasses.shift());
        $(".frame-one .hotspot").each(function(i) {
            var thisClass = theClasses[i];
            $(this).removeClass().addClass("hotspot "+ thisClass);
        });
}, 5000);

最佳答案

一种方法是用手头的类名保存一个数组。每当你想旋转时,在数组上做一个长度为 1 的循环移位来重新排列类。然后,使用 each(利用它提供的索引参数)根据索引为每个元素分配一个类。

See it in action .

关于jQuery 从数组中旋转类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25492838/

相关文章:

c - "Invisible"操作二维数组时出错。 (0 个错误,0 个警告)

javascript - 使用 javascript 从数组中打印 x 个对象

jquery - 使用 jquery/python GAE 破坏 PUT 请求

jquery - 从 jQuery 调用将参数传递给 Http Handler

html - 悬停时图像 map 品牌 Logo 更改

jquery - 砌体插件 : Resizing div wont cause reshuffle

c++ - 使用指向我的数组的指针在 C++ 中给我一个 "Unhandled exception"?

jquery - 从不隐藏 jquery qtip 工具提示

JavaScript 返回功能无法在两页深度工作

CSS 选择器 ul li a {...} vs ul > li > a {...}