2012-04-09 12 views
19

Chcę, aby part 1 onclick zmiany stylu div i part 2 ponownie po kliknięciu wróci do normy. Próbowałem to zrobić, ale nie udało mi się uzyskać wyników part 2.Zmiana języka Div styl

Poniżej znajduje się kod JavaScript

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

Po kliknięciu div testowy ponownie, kolor powinien wrócić do defaulr kolor czarny tj ...

+1

post wydarzenie wiążące kod –

Odpowiedz

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

w razie zdaniu, dlaczego nie 'color = "black"' i 'color = "red"'. już posiadasz kolor –

+1

@AbdullahGheith 'color' jest po prostu * nazwą * zmiennej. Mogłem nazwać to "bob" lub cokolwiek chciałem. Przechowałem kolor w "kolorze". –

+0

Mam na myśli w linii po, jeśli i linii po innym –

0

można sprawdzić kolor przed kliknięciem aby to zmienić.

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

Miej trochę logiki w celu sprawdzenia koloru lub masz jakąś flagę,

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

To może nie działać we wszystkich przeglądarkach. –

0

Prosta instrukcja switch powinno załatwić sprawę:

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

Lepiej zmienić klasę element (.regular jest czarny, .alert jest czerwony):

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

jQuery:

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

Live example

+0

Dobry przykład! Prosto i fajnie! :) –

Powiązane problemy