разница между toggleclass и addclass

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

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

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

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

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

этот новый параметр работает нормально.

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

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

4 ответов


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

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

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

вывод:

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


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

Проверьте ссылку API для полного объяснения каждого метод:


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

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


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