jQuery метод .toggleClass()
Определение и применение
jQuery метод .toggleClass() добавляет или удаляет один, или несколько классов каждому выбранному элементу. Этот метод проверяет каждый элемент на наличие указанного имени класса и добавляет этот класс, или классы, если они отсутствуют, либо удаляет класс, или классы, если они установлены у элемента (метод переключения классов).
jQuery синтаксис:
Синтаксис 1.0:
$( selector ).toggleClass( classname ) // может быть передано пустое значение (с версии 1.4), один, или несколько классов, заданных через пробел.classname - String
Синтаксис 1.3:
$( selector ).toggleClass( classname, state )classname - String
state - Boolean
Синтаксис 1.4:
$( selector ).toggleClass( classname, state )
$( selector ).toggleClass( function(index, classname), state )classname - String
index - Integer
function - Function
state - Boolean
Добавлен в версии jQuery
1.0 (синтаксис расширен в версиях 1.3 и 1.4)Значения параметров
| Параметр | Описание |
|---|---|
| classname | Добавляет или удаляет один или несколько классов каждому выбранному элементу. Необязательный параметр (допускается использовать пустое значение). |
| function |
Задает функцию, которая возвращает одно или несколько имен классов, которые необходимо добавить, либо удалить.
|
| state |
Логическое значение, которое указывает, что класс / классы должны быть только добавлены (значение
true), или класс / классы должны быть только удалены (значение false).
Необязательный параметр
JavaScript |
Пример использования
Пример использования jQuery метода .toggleClass()
Нажмите ▶, затем выполните действие из пояснения. Измените JavaScript и запустите пример ещё раз. В редакторе используется jQuery 3.1.1.
index.html
<button>Клик</button>
<p>Простой абзац</p>
main.js
$(document).ready(function () {
$('button').click(function () {
$('p').toggleClass('redColor displayBlock')
})
})
style.css
p {
display: none;
}
.redColor {
color: red;
}
.displayBlock {
display: block;
}
Нажмите ▶, чтобы запустить пример.
В этом примере с использованием jQuery метода .toggleClass() мы добавляем или удаляем несколько классов у
каждого элемента
<div>
после нажатия на кнопку (элемент
<button>).
Рассмотрим пример в котором в качестве параметра метода .toggleClass() передадим функцию:
Пример использования jQuery метода .toggleClass()
Нажмите ▶, затем выполните действие из пояснения. Измените JavaScript и запустите пример ещё раз. В редакторе используется jQuery 3.1.1.
index.html
<button>Клик</button>
<ul>
<li>List item 1</li>
<li>List item 2</li>
<li>List item 3</li>
<li>List item 4</li>
</ul>
main.js
$(document).ready(function () {
$('button').click(function () {
$('li').toggleClass(function (index, classname) {
if (classname != '') {
console.log('Удален класс ' + classname)
} else {
console.log('Установлен класс li_' + index)
}
return 'li_' + index
})
})
})
style.css
.li_0,
.li_2 {
color: red;
}
.li_1,
.li_3 {
color: green;
}
Нажмите ▶, чтобы запустить пример.
В этом примере с использованием jQuery метода .toggleClass() и функции, переданной в качестве параметра метода,
мы при нажатии на кнопку (элемент
<button>) чередуем классы у элементов
<li>
в зависимости от их индекса позиции в документе, при этом выводим в консоль браузера, какие классы были добавлены, а
какие удалены.