разница между классом переключения и addclass - PullRequest
9 голосов
/ 01 декабря 2011

Я работаю с jquery и пытаюсь добавить класс в таблицу при выделении этой строки таблицы.

Я изначально использовал следующий код -

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

Для некоторыхпричина в том, что это не работало в только в некоторых случаях, когда уже был назначен класс.До того, как я слишком увлекся устранением неполадок, я изменил его на следующее -

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

Эта новая опция работает нормально.

У меня вопрос, лучше ли один из приведенных выше вариантов, чемдругой ..... Должен ли я использовать toggleClass вместо addClass или достаточно addClass?

спасибо за любые мысли.

Ответы [ 4 ]

12 голосов
/ 01 декабря 2011

addClass делает именно это, добавляет класс к элементу.

toggleClass, с другой стороны, делает ТО, переключает класс, удаляя его, если он есть, в противном случае добавляя его, но при желании принимаялогическое значение (true / false), чтобы определить, должен ли объект быть добавлен (true) или удален (false).

toggleClass, вероятно, не работал для вас в случаях, когда this.clicked был false, что является ожидаемым поведением.Аргумент, который вы передаете в addClass, не имеет никакого эффекта, поскольку он ВСЕГДА добавляет класс.

Заключение:

Используйте toggleClass для переключения классов, используйте addClass для добавления классов.

4 голосов
/ 01 декабря 2011

Если addClass работает на вас, то вам следует придерживаться его. Методы предназначены для разных целей. addClass гарантирует, что определенный элемент присутствует в элементе, а toggleClass добавляет класс, если его там нет, и удаляет его, если он есть.

Ознакомьтесь со ссылкой на API для полного объяснения каждого метода:

3 голосов
/ 01 декабря 2011

Нет необходимости передавать второй аргумент в .addClass () - он всегда будет добавлять класс.

Если вы хотите именно такое поведение, то это правильный метод.

1 голос
/ 01 декабря 2011

Зависит действительно.Если вы не планируете удалять класс, я бы придерживался addClass.Естественно, toggleClass позволяет переключать классы.

...