LoginSignup
2
2

More than 5 years have passed since last update.

jQuery: CSSクラスの追加有無をboolで切り替える

Last updated at Posted at 2015-05-08

追記: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 を使えば良いです。

2
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2