2012-04-09 19 views
19

Quiero que part 1 onclick div cambie de estilo y part 2 nuevamente al hacer clic en él vuelve a la normalidad. Intenté hacerlo pero no logré los resultados part 2.Javascript cambiar el estilo Div

A continuación se presenta el código Javascript

function abc() { 
    document.getElementById("test").style.color="red"; 
} 

Después de hacer clic en el div prueba de nuevo, el color debe volver a defaulr de color negro ... es decir

+1

publicar su código –

Respuesta

31
function abc() { 
    var color = document.getElementById("test").style.color; 
    if (color === "red") 
     document.getElementById("test").style.color="black"; 
    else 
     document.getElementById("test").style.color="red"; 
} 
+0

vinculante en su sentencia si caso, ¿por qué no 'color = "negro" y' 'color = "red" '. ya está sosteniendo el color –

+1

@AbdullahGheith 'color' es solo el * nombre * de la variable. Podría haberlo llamado 'bob' o lo que sea que quisiera. Guarde el color en 'color'. –

+0

Me refiero a la línea después de if y la línea después de –

0

puede comprobar el color antes de hacer clic para cambiarlo

function abc(){ 
    var color = document.getElementById("test").style.color; 
    if(color==''){ 
     //change 
    }else{ 
     //change back 
    } 
} 
1

Tiene alguna lógica para comprobar el color o tienen alguna bandera,

function abc() { 
    var currentColor = document.getElementById("test").style.color; 

    if(currentColor == 'red'){ 
    document.getElementById("test").style.color="black"; 
    }else{ 
    document.getElementById("test").style.color="red"; 

    } 
} 
+0

Esto puede no funcionar para todos los navegadores –

0

Una declaración simple interruptor debe hacer el truco:

function abc() { 
    var elem=document.getElementById('test'),color; 
    switch(elem.style.color) { 
     case('red'): 
      color='black'; 
      break; 
     case('black'): 
     default: 
      color='red'; 
    } 
    elem.style.color=color; 
} 
0
function abc() { 
    var color = document.getElementById("test").style.color; 
    color = (color=="red") ? "black" : "red" ; 
    document.getElementById("test").style.color= color; 
} 
0

mejor cambiar la clase de el elemento (.regular es negro, .alert es rojo):

function abc(){ 
    var myDiv = document.getElementById("test"); 
    if (myDiv.className == 'alert') { 
    myDiv.className = 'regular'; 
    } else { 
    myDiv.className = 'alert'; 
    } 
} 
2

Usando jQuery:

$(document).ready(function(){ 
    $('div').click(function(){ 
     $(this).toggleClass('clicked'); 
    }); 
});​ 

Live example

+0

¡Buen ejemplo! Simple y genial! :) –

Cuestiones relacionadas