jQueryのtoggle()は複数の状態をサポートし、指定した数だけ循環します
ドキュメントから:
3つ以上のハンドラーが提供されている場合、.toggle()はそれらすべての間で循環します。たとえば、ハンドラーが3つある場合、最初のハンドラーは最初のクリック、4番目のクリック、7番目のクリックなどで呼び出されます。
次のコードは、3つの状態すべてを循環して、うまく機能します。
$('#tag').toggle(function() {
//set cssClass to 'on'
//remove all other classes
}, function() {
//set cssClass to 'off'
//remove all other classes
}, function() {
//set cssClass to 'none'
//remove all other classes
});
私の質問は、最初のページの読み込み時に、クラスがバックエンドによって#tagに設定されているという事実についてですが、タグをクリックすると、toggle()は、初期状態に関係なく、最初のトグル状態「on」からサイクルを開始します。
私が探しているのは、渡された現在の状態のオプションに基づいて次の状態に進むスマートトグルだと思います。
私は4つの状態を追加している可能性があるので、elseステートメントが複雑になることは望ましくありません。
nbクラスの設定と削除は単なる例です。私は他のことをしています。クラスの追加と削除の例を挙げないでください-クラスをチェックして初期状態を見つけることはできますが。