追記:5/9
smzk 2015/05/08 13:47
それもtoggleClassで出来ますけど。
$('.aaa').toggleClass('myclass', ok);
Oh... たしかに toggleClass でできました。ありがとうございます。参照していた情報が古かった(?)っぽ。
辛いこと
if(ok){
$('.aaa').addClass('myclass');
}
else{
$('.aaa').removeClass('myclass');
}
こういうのが辛い。
やりたいこと
$('.aaa').enableClass('myclass', ok);
こう書きたい。
jQuery拡張
(function($) {
$.fn.enableClass = function(className, enabled){
if(enabled){
this.addClass(className);
}
else{
this.removeClass(className);
}
return this;
};
})(jQuery);
enableClass というメソッドを追加した。これで前述の「やりたいこと」のコードが意図通り動くようになる。
補足
今回の例の条件 ok が $('.aaa').hasClass('myclass') である場合には、わざわざメソッド拡張せずに toggleClass を使えば良いです。