2010-07-22 42 views
3

我對jQuery的很新,今天我想這下面的代碼jQuery的複選框CSS改變

$("#new").click(function() { 
    $('#new:checked').closest('p').css('color', 'white'); 
}); 

這工作得很好,當我點擊複選框,但是當我取消選中該複選框,它不會更改回到原來的顏色回來..

我如何實現CSS的以前的狀態我勾去掉之後?

謝謝

回答

9
$("#new").click(function() { 
    $(this).closest('p').css('color', this.checked?'white':'blue'); // just change the blue for your preference.... 
}); 

但我建議你使用類..

$("#new").click(function() { 
    if (this.checked){ 
     $(this).closest('p').addClass('white'); 
    } else { 
     $(this).closest('p').removeClass('white'); 
    } 
}); 

$("#new").click(function() { 
    $(this).closest('p').toggleClass('white',this.checked); 
}); 

你應該有這樣的

.white { 
    color: white; 
} 
一個CSS定義210
+0

喝彩,工作。謝謝 – damien 2010-07-22 10:59:13

+0

這也適用於我,我不得不稍微調整它以適合我的需求,但它解決了我甚至不知道我有的問題。 – gcoulby 2014-05-11 09:37:50

1
$("#new").toggle(function() { 
    $('#new:checked').closest('p').css('color', 'white'); 
}, function() { 
    $('#new:checked').closest('p').css('color', 'black'); 
}); 

你可以做ü要改變。即使你可以檢查複選框是否被選中。 否則,如果您知道複選框的加載狀態,並且如果它始終相同,則不需要檢查「已檢查」。

0

不添加任何新的東西,只是包括更簡潔的方式,以相同的結果:

$("#new").click(function() { 
    var color = "black"; 
    if($(this).is(':checked')) color = "white"; 
    $(this).closest('p').css('color', color); 
});