是否有更有效的方法根据复选框状态添加或删除css类?

时间:2012-04-29 13:30:25

标签: jquery dry performance

在下面的代码中是否有一种更有效的DRYer方法来编写if-else语句?它看起来不太好。

var $diffPaymentAddressFieldset = $('fieldset.diffPaymentAddress', 'form.myForm');

// $checkbox is an input with type=checkbox
if ($checkbox.is(':checked') === true) { 
    $diffPaymentAddressFieldset.removeClass('hidden');
} else {
    $diffPaymentAddressFieldset.addClass('hidden');
}

(仅供参考:忽略长变量名称,它们会被缩小。)

2 个答案:

答案 0 :(得分:4)

使用toggleClass()

$diffPaymentAddressFieldset.toggleClass('hidden', $checkbox.is(':checked'));

答案 1 :(得分:0)

还是带有addClass / removeClass的单​​行程序?

$diffPaymentAddressFieldset[$checkbox.is(':checked')?'removeClass':'addClass']('hidden');

另外,为了上帝的缘故,尝试使用较短的变量名称?