10

私はjqueryを使用しており、そのテーブル行の選択時にテーブルにクラスを追加しようとしています.

最初は次のコードを使用していました-

$(this).parents("tr").toggleClass("over", this.clicked);            

何らかの理由で、既にクラスが割り当てられている一部のインスタンスでのみ機能していませんでした。トラブルシューティングに夢中になる前に、次のように変更しました-

$(this).parents("tr").addClass("over", this.clicked);           

この新しいオプションはうまく機能しているようです。

私の質問は、上記の 1 つのオプションが他のオプションよりも優れているかどうかです.....addClass の代わりに toggleClass を使用する必要がありますか、それとも addClass で十分ですか?

ご意見ありがとうございます。

4

4 に答える 4

13

addClassまさにそれを行い、クラスを要素に追加します。

toggleClass一方、それを行い、クラスを切り替え、存在する場合は削除し、そうでない場合は追加しますが、オプションでブール値 (true/false) を取得して、オブジェクトを追加する (true) か削除する (false) かを決定します。

toggleClass期待される動作であるwas のインスタンスでthis.clickedは、おそらく機能していませんでした。false渡す引数はaddClass、常にクラスを追加するため、効果がありません。

結論:

toggleClassクラスの切り替え、クラスaddClassの追加に使用します。

于 2011-12-01T13:52:41.453 に答える
4

があなたaddClassのために働いているなら、あなたはそれに固執するべきです。メソッドは、さまざまな目的のために用意されています。addClass特定のクラスが要素に存在することを保証し、存在しtoggleClassない場合はクラスを追加し、存在する場合は削除します。

各メソッドの完全な説明については、API リファレンスを確認してください。

于 2011-12-01T13:53:51.807 に答える
3

2 番目の引数を .addClass() に渡す必要はありません。常にクラスが追加されます。

それがあなたが望む振る舞いなら、それは正しい方法です。

于 2011-12-01T13:53:25.987 に答える
1

本当に依存します。クラスを削除する予定がない場合は、そのままにしておきaddClassます。もちろん、toggleClassクラスを切り替えることができます。

于 2011-12-01T13:53:00.280 に答える