разница между 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
позволяет переключать классы.