2011-11-20 299 views
1

我已經把一些jQuery放在一起,以改變容器上的突出顯示(默認紅色,黑色勾選),當一個特定的複選框被選中。我覺得這個代碼可以簡化,但不知道如何。有沒有人有任何想法?jquery更改複選框更改css類

$("#container input:checkbox[id=cbTermsAndConditions]").change(function() { 
    if ($(this).attr("checked")) { 
    $('#container').addClass("containerblack"); 
    $('#container').removeClass("containerred"); 
    } else { 
    $(this).parent().addClass("containerred"); 
    $(this).parent().removeClass("containerblack"); 
    } 
}); 

感謝

回答

1

少許清潔劑:

if(this.checked) 
+0

謝謝:

$("#container input:checkbox[id=cbTermsAndConditions]").click(function() { var $this = $(this); if ($this.attr("checked")) { $('#container').toggleClass("containerblack containerred"); } else { $this.parent().toggleClass("containerred containerblack"); } }); 

此外,您還可以得到與原始的javascript 「檢查」 的值,以代替if語句。我不知道你可以切換多個CSS類。我也改爲使用this.checked。乾杯。 – StuffandBlah

1

使用點擊事件作爲複選框的值不會改變,你大概可以使用切換類,如果你正在做的是添加和刪除類。