1

クラスが存在する場合はそれを切り替え、存在しない場合はクラスを追加する最も簡単な方法は何ですか?

現在使用しているもの:

if ($(e.target).hasClass('clicked-odd')) {
  $(e.target).removeClass('clicked-odd');
  $(e.target).addClass('clicked-even');
} else {
  $(e.target).removeClass('clicked-even');
  $(e.target).addClass('clicked-odd');
}

...少し長いようです。

あなたはこれがうまくいくと思うでしょう:

$(e.target).toggleClass('clicked-even', 'clicked-odd')      

ただし、クラスが存在する場合にのみクラスを切り替えるように見えますが、どちらのクラスも存在しない場合は「clicked-odd」を追加しません。

4

2 に答える 2

1

トグルクラスは、クラスの1つがすでに存在する場合にのみ、希望どおりに機能します。

私が頭のてっぺんから考えることができる最も簡単な方法は

$(e.target).is('.clicked-even, .clicked-odd') ?
    $(e.target).toggleClass('clicked-even clicked-odd') : $(e.target).addClass('clicked-odd');
于 2013-02-14T14:53:24.463 に答える
0

toggleClass呼び出しはクラスをOKに切り替えます。

ただし、これを使用して希望どおりに機能させるには、最初にターゲットにクラスを設定する必要があります。そうでない場合は、両方のクラスが最初のトグルで追加され、2回目の呼び出しで両方が削除されます。

ターゲットにクラスがない状態で開始する場合はif、最初にクラスを挿入する必要があります。

于 2013-02-14T14:42:20.477 に答える