一个按钮,用于更改对象颜色3次

时间:2015-12-01 10:23:50

标签: javascript browser

我似乎没有足够的知识。我想制作一个按钮,每次点击它都会改变对象的颜色。颜色应该改变3次,它应该循环整个过程。 这是我做的:

var count = 0;
function myFunction() {
    if (count == 0) {
        character.style.backgroundColor = "#000000";
        count = 1;
        console.log(count);
    }
    if  (count == 1) {
        character.style.backgroundColor = "#7FFF00";
        count = 2;
        console.log(count);
    }
    else {
        character.style.backgroundColor = "#A2FAFA";
        count = 0;  
        console.log(count);
    }
}

我知道它为什么不起作用,但我需要用另一种方式来写它。 功能将对象的颜色更改为#000000"#000000"分裂然后继续下一个颜色:"#7FFF00"。它不会在第一个" if"之后结束该功能。如何以其他方式重写它?

4 个答案:

答案 0 :(得分:3)

费斯特的答案非常正确。但是,作为改进,您可以通过使用数组来避免重复代码:

var count = 0;
var colours = ["#000000", "#7FFF00", "#A2FAFA"];
function myFunction() {
    count += 1;
    if (count >= colours.length) {
        count = 0;
    }

    character.style.backgroundColor = colours[count];
    console.log(count);
}

答案 1 :(得分:1)

你可以链接if - else以确保它在执行if语句后不会执行任何代码

df2 <- df1
i1 <- df1[1:4] > df1$UCL
i2 <- df1[1:4] < df1$LCL
df2[1:4][i1] <- df2$UCL[row(df2[1:4])][i1]
df2[1:4][i2] <- df2$LCL[row(df2[1:4])][i2]

答案 2 :(得分:0)

该条款仍在继续,因为您未使用else if。试试这个:

var count = 0;
function myFunction() {

    count++;
    count = count % 3;

    if (count == 0) character.style.backgroundColor = "#000000";      
    else if  (count == 1)  character.style.backgroundColor = "#7FFF00";       
    else  character.style.backgroundColor = "#A2FAFA";
}

我还添加了模运算符以简化代码

答案 3 :(得分:0)

为此你应该使用

if(count==0) { ... }
else if(count==1) { ... }
else { ... }

所以功能应该是

function myFunction() {
    if (count == 0) {
        character.style.backgroundColor = "#000000";
        count = 1;
        console.log(count);
    }
    else if  (count == 1) {
        character.style.backgroundColor = "#7FFF00";
        count = 2;
        console.log(count);
    }
    else {
        character.style.backgroundColor = "#A2FAFA";
        count = 0;  
        console.log(count);
    }
}

更好的方法:

var count = -1;
function myFunction() {
        var color = ["#000000", "#7FFF00", "#A2FAFA"];
        character.style.backgroundColor = color[count>1?count:++count] ;
}