Поочередное выполнение функций
Поочередно выполняет одно из нескольких заданных действий. Имеет четыре варианта использования:
Изменяет видимость выбранных элементов на противоположную (показывает/скрывает).
duration — продолжительность выполнения анимации. Может быть задана в миллисекундах или строковым значением 'fast' или 'slow' (200 и 600 миллисекунд).
callback — функция, которая будет вызвана после завершения анимации.
duration — см. выше.
easing — изменение скорости появления/исчезновения (будет ли она замедляется к концу выполнения или наоборот ускорится). (см. описание)
callback — см. выше.
Замечание: Отметим существенное отличие первого варианта использования метода toggle(), от трех других: в случае первого варианта, метод используется как обработчик события onClick у выбранных элементов, в то время как два остальных варианта вызываются непосредственно для изменения состояния выбранных элементов.
Примеры
Рассмотрим страницу со списком нескольких элементов и продемонстрирует работу с первым вариантом функции toggle():
~lt~!DOCTYPE html~gt~ ~lt~html~gt~ ~lt~head~gt~ ~lt~style~gt~ ul{margin:10px; list-style:inside circle; font-weight:bold;} li{cursor:pointer;} ~lt~/style~gt~ ~lt~script src="https://code.jquery.com/jquery-latest.min.js"~gt~~lt~/script~gt~ ~lt~/head~gt~ ~lt~body~gt~ ~lt~ul~gt~ ~lt~li~gt~Пришел~lt~/li~gt~ ~lt~li~gt~Увидел~lt~/li~gt~ ~lt~li~gt~Победил~lt~/li~gt~ ~lt~li~gt~Расслабился~lt~/li~gt~ ~lt~li~gt~И отхватил...~lt~/li~gt~ ~lt~/ul~gt~ ~lt~script~gt~ $("li").toggle( function () { $(this).css({"list-style-type":"disc", "color":"blue"}); }, function () { $(this).css({"list-style-type":"disc", "color":"red"}); }, function () { $(this).css({"list-style-type":"", "color":""}); } ); ~lt~/script~gt~ ~lt~/body~gt~ ~lt~/html~gt~
В результате, при первом "клике" по элементу списка, он поменяет свой цвет на голубой, при втором — на красный, а при третьем вернется в исходное состояние.
Следующий пример демонстрирует работу второго и третьего варианта использования метода toggle() на странице с теми же элементами:
~lt~!DOCTYPE html~gt~ ~lt~html~gt~ ~lt~head~gt~ ~lt~style~gt~ ul{margin:10px; list-style:inside circle; font-weight:bold;} li{cursor:pointer;} ~lt~/style~gt~ ~lt~script src="https://code.jquery.com/jquery-latest.min.js"~gt~~lt~/script~gt~ ~lt~/head~gt~ ~lt~body~gt~ ~lt~ul~gt~ ~lt~li~gt~Пришел~lt~/li~gt~ ~lt~li~gt~Увидел~lt~/li~gt~ ~lt~li~gt~Победил~lt~/li~gt~ ~lt~li~gt~Расслабился~lt~/li~gt~ ~lt~li~gt~И отхватил...~lt~/li~gt~ ~lt~/ul~gt~ ~lt~script~gt~ $("li").click(function(){ $(this).toggle(1000, function(){ $(this).toggle(true); }) }); ~lt~/script~gt~ ~lt~/body~gt~ ~lt~/html~gt~
в результате, при "клике" по элементу списка, он в начале начнет плавно исчезать (за счет toggle(1000, func...), а после полного исчезновения, будет вызван обработчик окончания анимации. Он возвратит видимость исчезнувшему элементу списка.