滚动阵列onclick

时间:2014-09-09 15:30:18

标签: javascript jquery arrays

如果问题是业余的话,那就烦恼了。 在单击按钮时,按钮的背景颜色必须更改为3种颜色。 我使用Array,在第一次单击时必须Color为红色,第二次单击Blue,Black并重置 所以我必须从索引0滚动数组。 这是一个代码,但很有效。

var color = ['red','blue','black'];
var calo = function() {
   for (var i=0 ; i<color.length ; i++)
    {
    return color[i];
    }  
};

var farbe = function(){
    return color[calo()]; 
};

    $('#c2').click(function() {
            $(this).css('background',farbe());
        });

2 个答案:

答案 0 :(得分:0)

您需要某种全局变量来跟踪当前颜色:

var currentColorIndex = 0;

var color = ['red','blue','black'];
var calo = function() {
    currentColorIndex++;
    if (currentColorIndex >= color.length) {
        currentColorIndex = 0;
    }  

    // alternative
    // currentColorIndex = (currentColorIndex++) % color.length;

    return currentColorIndex;
};

var farbe = function(){
    return color[calo()]; 
};

$('#c2').click(function() {
    $(this).css('background-color',farbe());
});

Fiddle

答案 1 :(得分:0)

保持简单:

var color = ['red', 'blue', 'black'];
var colorIndex = 2;
$('#c2').click(function () {
    switch (colorIndex) {
        case 0:
            $('#c2').css('background', color[1]);
            colorIndex += 1;
            break;
        case 1:
            $('#c2').css('background', color[2]);
            colorIndex += 1;
            break;
        case 2:
            $('#c2').css('background', color[0]);
            colorIndex = 0;
            break;
    }

});

我没有对此进行测试,但我认为没关系。